import { defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString, createTextVNode, renderSlot, createCommentVNode, inject, reactive, watch, toRefs, resolveComponent, createBlock, withCtx, Fragment, renderList, createVNode, mergeProps, createSlots, normalizeClass, normalizeStyle, getCurrentScope, onScopeDispose, ref, unref, warn, getCurrentInstance, computed, provide, Transition, withDirectives, vShow, onMounted, resolveDynamicComponent, withModifiers, isVNode, render as render$f, nextTick, normalizeProps } from 'vue';

var script$e = defineComponent({
    name: "magusFooter",
    props: {
        // 版权信息
        copyright: {
            type: String,
            default: "Copyright © Shanghai Magus Technology Co., Ltd. All rights reserved"
        },
        // icp信息
        ICP: {
            type: String,
            default: "沪ICP备13012546号-3"
        },
        // icpurl
        icpUrl: {
            type: String,
            default: "https://beian.miit.gov.cn/"
        }
    }
});

const _hoisted_1$h = { class: "magus-footer" };
const _hoisted_2$e = { class: "magus-footer-copyright" };
const _hoisted_3$a = ["href"];

function render$e(_ctx, _cache, $props, $setup, $data, $options) {
  return (openBlock(), createElementBlock("footer", _hoisted_1$h, [
    createElementVNode("span", _hoisted_2$e, toDisplayString(_ctx.copyright), 1 /* TEXT */),
    createElementVNode("a", {
      class: "magus-footer-icp",
      href: _ctx.icpUrl,
      target: "_blank"
    }, toDisplayString(_ctx.ICP), 9 /* TEXT, PROPS */, _hoisted_3$a)
  ]))
}

script$e.render = render$e;
script$e.__file = "packages/components/magusFooter/src/index.vue";

const withInstall$1 = (main, extra) => {
    main.install = (app) => {
        for (const comp of [main, ...Object.values(extra ?? {})]) {
            app.component(comp.name, comp);
        }
    };
    if (extra) {
        for (const [key, comp] of Object.entries(extra)) {
            main[key] = comp;
        }
    }
    return main;
};
// export const withNoopInstall = <T>(component: T) => {
//   (component as SFCWithInstall<T>).install = NOOP;
//   return component as SFCWithInstall<T>;
// };

/*
 * @Description: 网站底部组件
 * @Version: 1.0
 * @Author: wenbin
 * @Date: 2021-04-16 14:31:58
 * @LastEditors: wenbin
 * @LastEditTime: 2021-10-13 13:56:36
 * @FilePath: /jwb-vue3-ui/packages/components/magusFooter/index.ts
 * Copyright (C) 2021 wenbin. All rights reserved.
 */
const magusFooter = withInstall$1(script$e);

var script$d = defineComponent({
    name: "magusAddTemplate",
    components: {},
    props: {
        title: {
            type: String,
            default: ""
        }
    },
    data() {
        return {};
    },
    setup(props, context) {
        const slotData = context.slots;
        return { slotData };
    }
});

const _hoisted_1$g = { class: "magusAddTemplate" };
const _hoisted_2$d = {
  key: 0,
  class: "magusAddTemplate-title"
};
const _hoisted_3$9 = {
  key: 0,
  class: "magusAddTemplate-title-other"
};
const _hoisted_4$1 = {
  key: 1,
  class: "magusAddTemplate-main"
};
const _hoisted_5$1 = {
  key: 2,
  class: "magusAddTemplate-footer"
};

function render$d(_ctx, _cache, $props, $setup, $data, $options) {
  return (openBlock(), createElementBlock("div", _hoisted_1$g, [
    (_ctx.title)
      ? (openBlock(), createElementBlock("h3", _hoisted_2$d, [
          createTextVNode(toDisplayString(_ctx.title) + " ", 1 /* TEXT */),
          (_ctx.slotData.header)
            ? (openBlock(), createElementBlock("div", _hoisted_3$9, [
                renderSlot(_ctx.$slots, "header")
              ]))
            : createCommentVNode("v-if", true)
        ]))
      : createCommentVNode("v-if", true),
    (_ctx.slotData.main)
      ? (openBlock(), createElementBlock("div", _hoisted_4$1, [
          renderSlot(_ctx.$slots, "main")
        ]))
      : createCommentVNode("v-if", true),
    (_ctx.slotData.footer)
      ? (openBlock(), createElementBlock("div", _hoisted_5$1, [
          renderSlot(_ctx.$slots, "footer")
        ]))
      : createCommentVNode("v-if", true)
  ]))
}

script$d.render = render$d;
script$d.__file = "packages/components/magusAddTemplate/src/index.vue";

/*
 * @Description:
 * @Version: 1.0
 * @Author: wenbin
 * @Date: 2021-11-08 10:56:23
 * @LastEditors: wenbin
 * @LastEditTime: 2021-11-08 11:21:29
 * @FilePath: /jwb-vue3-ui/packages/components/magusAddTemplate/index.ts
 * Copyright (C) 2021 wenbin. All rights reserved.
 */
const magusAddTemplate = withInstall$1(script$d);

/*!
  * vue-router v4.0.15
  * (c) 2022 Eduardo San Martin Morote
  * @license MIT
  */

const hasSymbol = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';
const PolySymbol = (name) => 
// vr = vue router
hasSymbol
    ? Symbol((process.env.NODE_ENV !== 'production') ? '[vue-router]: ' + name : name)
    : ((process.env.NODE_ENV !== 'production') ? '[vue-router]: ' : '_vr_') + name;
// rvlm = Router View Location Matched
/**
 * RouteRecord being rendered by the closest ancestor Router View. Used for
 * `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View
 * Location Matched
 *
 * @internal
 */
/*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router view location matched' : 'rvlm');
/**
 * Allows overriding the router view depth to control which component in
 * `matched` is rendered. rvd stands for Router View Depth
 *
 * @internal
 */
/*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router view depth' : 'rvd');
/**
 * Allows overriding the router instance returned by `useRouter` in tests. r
 * stands for router
 *
 * @internal
 */
const routerKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router' : 'r');
/**
 * Allows overriding the current route returned by `useRoute` in tests. rl
 * stands for route location
 *
 * @internal
 */
const routeLocationKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'route location' : 'rl');
/**
 * Allows overriding the current route used by router-view. Internally this is
 * used when the `route` prop is passed.
 *
 * @internal
 */
/*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router view location' : 'rvl');

var NavigationType;
(function (NavigationType) {
    NavigationType["pop"] = "pop";
    NavigationType["push"] = "push";
})(NavigationType || (NavigationType = {}));
var NavigationDirection;
(function (NavigationDirection) {
    NavigationDirection["back"] = "back";
    NavigationDirection["forward"] = "forward";
    NavigationDirection["unknown"] = "";
})(NavigationDirection || (NavigationDirection = {}));

/*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'navigation failure' : 'nf');
/**
 * Enumeration with all possible types for navigation failures. Can be passed to
 * {@link isNavigationFailure} to check for specific failures.
 */
var NavigationFailureType;
(function (NavigationFailureType) {
    /**
     * An aborted navigation is a navigation that failed because a navigation
     * guard returned `false` or called `next(false)`
     */
    NavigationFailureType[NavigationFailureType["aborted"] = 4] = "aborted";
    /**
     * A cancelled navigation is a navigation that failed because a more recent
     * navigation finished started (not necessarily finished).
     */
    NavigationFailureType[NavigationFailureType["cancelled"] = 8] = "cancelled";
    /**
     * A duplicated navigation is a navigation that failed because it was
     * initiated while already being at the exact same location.
     */
    NavigationFailureType[NavigationFailureType["duplicated"] = 16] = "duplicated";
})(NavigationFailureType || (NavigationFailureType = {}));

/**
 * Returns the router instance. Equivalent to using `$router` inside
 * templates.
 */
function useRouter() {
    return inject(routerKey);
}
/**
 * Returns the current route location. Equivalent to using `$route` inside
 * templates.
 */
function useRoute() {
    return inject(routeLocationKey);
}

var script$c = defineComponent({
    name: "magusBreadcrumb",
    components: {},
    data() {
        return {};
    },
    setup() {
        const state = reactive({
            breadList: []
        });
        const route = useRoute();
        const matched = route.matched.filter((item) => item.name);
        state.breadList = matched;
        watch(() => route.path, () => {
            state.breadList = matched;
        }, { immediate: true });
        return {
            ...toRefs(state)
        };
    }
});

function render$c(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_el_breadcrumb_item = resolveComponent("el-breadcrumb-item");
  const _component_el_breadcrumb = resolveComponent("el-breadcrumb");

  return (openBlock(), createBlock(_component_el_breadcrumb, { "separator-class": "el-icon-arrow-right" }, {
    default: withCtx(() => [
      (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.breadList, (item) => {
        return (openBlock(), createBlock(_component_el_breadcrumb_item, {
          key: item['name']
        }, {
          default: withCtx(() => [
            createTextVNode(toDisplayString(item["meta"]["title"]), 1 /* TEXT */)
          ]),
          _: 2 /* DYNAMIC */
        }, 1024 /* DYNAMIC_SLOTS */))
      }), 128 /* KEYED_FRAGMENT */))
    ]),
    _: 1 /* STABLE */
  }))
}

script$c.render = render$c;
script$c.__file = "packages/components/magusBreadcrumb/src/index.vue";

/*
 * @Description:
 * @Version: 1.0
 * @Author: wenbin
 * @Date: 2021-11-08 14:58:59
 * @LastEditors: wenbin
 * @LastEditTime: 2021-11-08 15:37:45
 * @FilePath: /jwb-vue3-ui/packages/components/magusBreadcrumb/index.ts
 * Copyright (C) 2021 wenbin. All rights reserved.
 */
const magusBreadcrumb = withInstall$1(script$c);

var id = "2441109";
var name = "云平台";
var font_family = "magusdip-iconfont";
var css_prefix_text = "magusdip";
var description = "magus云平台相关";
var glyphs = [
	{
		icon_id: "29120858",
		name: "全部展开",
		font_class: "quanbuzhankai",
		unicode: "e6ae",
		unicode_decimal: 59054
	},
	{
		icon_id: "29120682",
		name: "全部收起",
		font_class: "quanbushouqi",
		unicode: "e6af",
		unicode_decimal: 59055
	},
	{
		icon_id: "28629598",
		name: "关闭声音",
		font_class: "guanbishengyin",
		unicode: "e6ab",
		unicode_decimal: 59051
	},
	{
		icon_id: "28629599",
		name: "声音",
		font_class: "shengyin",
		unicode: "e6ac",
		unicode_decimal: 59052
	},
	{
		icon_id: "421115",
		name: "组织部门",
		font_class: "zuzhibumen",
		unicode: "e6a5",
		unicode_decimal: 59045
	},
	{
		icon_id: "6901606",
		name: "公司",
		font_class: "gongsi",
		unicode: "e6a6",
		unicode_decimal: 59046
	},
	{
		icon_id: "7338876",
		name: "部门用能",
		font_class: "bumenyongneng",
		unicode: "e6a7",
		unicode_decimal: 59047
	},
	{
		icon_id: "9162734",
		name: "岗位",
		font_class: "gangwei",
		unicode: "e6aa",
		unicode_decimal: 59050
	},
	{
		icon_id: "15829867",
		name: "机构",
		font_class: "jigou",
		unicode: "e7a0",
		unicode_decimal: 59296
	},
	{
		icon_id: "18164896",
		name: "组织,合作,协作,人员,分支,关联人员",
		font_class: "teamwork",
		unicode: "e870",
		unicode_decimal: 59504
	},
	{
		icon_id: "26956431",
		name: "启动",
		font_class: "a-ziyuan56",
		unicode: "e6a0",
		unicode_decimal: 59040
	},
	{
		icon_id: "26956398",
		name: "复制",
		font_class: "fuzhi1",
		unicode: "e69d",
		unicode_decimal: 59037
	},
	{
		icon_id: "26956399",
		name: "启用",
		font_class: "qiyong",
		unicode: "e69e",
		unicode_decimal: 59038
	},
	{
		icon_id: "26956400",
		name: "查看",
		font_class: "chakan1",
		unicode: "e69f",
		unicode_decimal: 59039
	},
	{
		icon_id: "26956402",
		name: "停止",
		font_class: "tingzhi",
		unicode: "e6a2",
		unicode_decimal: 59042
	},
	{
		icon_id: "26956403",
		name: "设置值",
		font_class: "shezhizhi",
		unicode: "e6a3",
		unicode_decimal: 59043
	},
	{
		icon_id: "26956404",
		name: "禁用",
		font_class: "jinyong",
		unicode: "e6a4",
		unicode_decimal: 59044
	},
	{
		icon_id: "26830328",
		name: "资源 51",
		font_class: "a-ziyuan51",
		unicode: "e69c",
		unicode_decimal: 59036
	},
	{
		icon_id: "26830325",
		name: "资源 49",
		font_class: "a-ziyuan49",
		unicode: "e699",
		unicode_decimal: 59033
	},
	{
		icon_id: "26830326",
		name: "资源 50",
		font_class: "a-ziyuan50",
		unicode: "e69a",
		unicode_decimal: 59034
	},
	{
		icon_id: "26830327",
		name: "资源 48",
		font_class: "a-ziyuan48",
		unicode: "e69b",
		unicode_decimal: 59035
	},
	{
		icon_id: "7720075",
		name: "消息",
		font_class: "xiaoxi",
		unicode: "e698",
		unicode_decimal: 59032
	},
	{
		icon_id: "6483174",
		name: "添加服务",
		font_class: "tianjiafuwu",
		unicode: "e697",
		unicode_decimal: 59031
	},
	{
		icon_id: "457078",
		name: "测点能耗数据",
		font_class: "znbb2",
		unicode: "e695",
		unicode_decimal: 59029
	},
	{
		icon_id: "13269452",
		name: " 互联网",
		font_class: "hulianwang",
		unicode: "e717",
		unicode_decimal: 59159
	},
	{
		icon_id: "20186688",
		name: "电源",
		font_class: "dianyuan",
		unicode: "e696",
		unicode_decimal: 59030
	},
	{
		icon_id: "23244243",
		name: "接口",
		font_class: "jiekou",
		unicode: "e6a8",
		unicode_decimal: 59048
	},
	{
		icon_id: "23789923",
		name: "踩",
		font_class: "cai1",
		unicode: "e692",
		unicode_decimal: 59026
	},
	{
		icon_id: "23788422",
		name: "点赞",
		font_class: "dianzan",
		unicode: "e691",
		unicode_decimal: 59025
	},
	{
		icon_id: "2002923",
		name: "暂无数据",
		font_class: "zanwushuju",
		unicode: "e690",
		unicode_decimal: 59024
	},
	{
		icon_id: "23339366",
		name: "踩",
		font_class: "cai",
		unicode: "e68e",
		unicode_decimal: 59022
	},
	{
		icon_id: "7401286",
		name: "分组管理",
		font_class: "group",
		unicode: "e684",
		unicode_decimal: 59012
	},
	{
		icon_id: "21435853",
		name: "协议",
		font_class: "xieyi",
		unicode: "e6ad",
		unicode_decimal: 59053
	},
	{
		icon_id: "5103328",
		name: "版本",
		font_class: "banben",
		unicode: "e682",
		unicode_decimal: 59010
	},
	{
		icon_id: "11696751",
		name: "支持平台",
		font_class: "zhichipingtai",
		unicode: "e683",
		unicode_decimal: 59011
	},
	{
		icon_id: "21822285",
		name: "装备型号",
		font_class: "zhuangbeixinghao",
		unicode: "e685",
		unicode_decimal: 59013
	},
	{
		icon_id: "11583295",
		name: "其他应用2",
		font_class: "xingzhuangjiehe",
		unicode: "e686",
		unicode_decimal: 59014
	},
	{
		icon_id: "11756982",
		name: "下单",
		font_class: "xiadan-copy",
		unicode: "e687",
		unicode_decimal: 59015
	},
	{
		icon_id: "12713504",
		name: "点赞",
		font_class: "zan",
		unicode: "e68c",
		unicode_decimal: 59020
	},
	{
		icon_id: "17907925",
		name: "应用",
		font_class: "chanpin1",
		unicode: "e68d",
		unicode_decimal: 59021
	},
	{
		icon_id: "19312297",
		name: "型号",
		font_class: "xinghao",
		unicode: "e68f",
		unicode_decimal: 59023
	},
	{
		icon_id: "21533128",
		name: "厂家",
		font_class: "changjia",
		unicode: "e706",
		unicode_decimal: 59142
	},
	{
		icon_id: "3404230",
		name: "镜像",
		font_class: "jingxiang",
		unicode: "e6da",
		unicode_decimal: 59098
	},
	{
		icon_id: "6828762",
		name: "信号",
		font_class: "xinhao",
		unicode: "e64d",
		unicode_decimal: 58957
	},
	{
		icon_id: "6932392",
		name: "无线呼叫",
		font_class: "wuxianhujiao",
		unicode: "e67a",
		unicode_decimal: 59002
	},
	{
		icon_id: "11685295",
		name: "密码重置",
		font_class: "mimazhongzhi",
		unicode: "e67b",
		unicode_decimal: 59003
	},
	{
		icon_id: "13043469",
		name: "WIFI 我fi",
		font_class: "WIFIwofi",
		unicode: "e67c",
		unicode_decimal: 59004
	},
	{
		icon_id: "14409297",
		name: "预览",
		font_class: "chakan-3",
		unicode: "e67d",
		unicode_decimal: 59005
	},
	{
		icon_id: "14646393",
		name: "cpu",
		font_class: "icon-GPU-dashboard",
		unicode: "e67e",
		unicode_decimal: 59006
	},
	{
		icon_id: "15884105",
		name: "串口服务器",
		font_class: "chuankoufuwuqi",
		unicode: "e67f",
		unicode_decimal: 59007
	},
	{
		icon_id: "17971891",
		name: "热点",
		font_class: "redian",
		unicode: "e6a9",
		unicode_decimal: 59049
	},
	{
		icon_id: "19220180",
		name: "内存",
		font_class: "neicun",
		unicode: "e693",
		unicode_decimal: 59027
	},
	{
		icon_id: "20893813",
		name: "应用",
		font_class: "yingyong",
		unicode: "e680",
		unicode_decimal: 59008
	},
	{
		icon_id: "21485667",
		name: "日历",
		font_class: "rili",
		unicode: "e681",
		unicode_decimal: 59009
	},
	{
		icon_id: "1614600",
		name: "重置密码",
		font_class: "zhongzhimima",
		unicode: "e65b",
		unicode_decimal: 58971
	},
	{
		icon_id: "4822133",
		name: "dns",
		font_class: "dns",
		unicode: "e65d",
		unicode_decimal: 58973
	},
	{
		icon_id: "4978671",
		name: "网络",
		font_class: "wangluo",
		unicode: "e666",
		unicode_decimal: 58982
	},
	{
		icon_id: "6111398",
		name: "云平台",
		font_class: "yunpingtai",
		unicode: "e665",
		unicode_decimal: 58981
	},
	{
		icon_id: "8262659",
		name: "授权管理",
		font_class: "shouquanguanli",
		unicode: "e667",
		unicode_decimal: 58983
	},
	{
		icon_id: "8638102",
		name: "上传",
		font_class: "shangchuan1",
		unicode: "e668",
		unicode_decimal: 58984
	},
	{
		icon_id: "8818257",
		name: "马蜂窝",
		font_class: "mafengwo",
		unicode: "e669",
		unicode_decimal: 58985
	},
	{
		icon_id: "9199655",
		name: "NAT网关",
		font_class: "NATwangguan",
		unicode: "e66a",
		unicode_decimal: 58986
	},
	{
		icon_id: "9401263",
		name: "网桥",
		font_class: "wangqiao",
		unicode: "e66b",
		unicode_decimal: 58987
	},
	{
		icon_id: "9529032",
		name: "授权",
		font_class: "shouquan",
		unicode: "e66c",
		unicode_decimal: 58988
	},
	{
		icon_id: "9646971",
		name: "dns",
		font_class: "dns1",
		unicode: "e66f",
		unicode_decimal: 58991
	},
	{
		icon_id: "10593819",
		name: "网络安全,盾牌_jurassic",
		font_class: "jurassic_safe",
		unicode: "e6a1",
		unicode_decimal: 59041
	},
	{
		icon_id: "11486357",
		name: "蜂窝",
		font_class: "fengwo",
		unicode: "e672",
		unicode_decimal: 58994
	},
	{
		icon_id: "11666983",
		name: "策略",
		font_class: "celve",
		unicode: "e673",
		unicode_decimal: 58995
	},
	{
		icon_id: "11996606",
		name: "无数据",
		font_class: "wushuju",
		unicode: "e674",
		unicode_decimal: 58996
	},
	{
		icon_id: "12544680",
		name: "规则",
		font_class: "8637e972",
		unicode: "e675",
		unicode_decimal: 58997
	},
	{
		icon_id: "12988431",
		name: "网络安全",
		font_class: "wangluoanquan",
		unicode: "e676",
		unicode_decimal: 58998
	},
	{
		icon_id: "13010342",
		name: "恢复",
		font_class: "ziyuan",
		unicode: "e6b6",
		unicode_decimal: 59062
	},
	{
		icon_id: "13882792",
		name: "诊断",
		font_class: "zhenduan1",
		unicode: "e76e",
		unicode_decimal: 59246
	},
	{
		icon_id: "14676003",
		name: "D-工作通知-系统升级",
		font_class: "D-gongzuotongzhi-xitongshengji",
		unicode: "e677",
		unicode_decimal: 58999
	},
	{
		icon_id: "15801323",
		name: "无数据",
		font_class: "wushuju1",
		unicode: "e678",
		unicode_decimal: 59000
	},
	{
		icon_id: "19209564",
		name: "边缘计算",
		font_class: "bianyuanjisuan",
		unicode: "e679",
		unicode_decimal: 59001
	},
	{
		icon_id: "21309264",
		name: "重启",
		font_class: "zhongqi",
		unicode: "ea2f",
		unicode_decimal: 59951
	},
	{
		icon_id: "20614005",
		name: "导出",
		font_class: "daochu",
		unicode: "e7f4",
		unicode_decimal: 59380
	},
	{
		icon_id: "2567910",
		name: "采集",
		font_class: "caiji2",
		unicode: "e662",
		unicode_decimal: 58978
	},
	{
		icon_id: "6176349",
		name: "系统管理",
		font_class: "xitongguanli",
		unicode: "e663",
		unicode_decimal: 58979
	},
	{
		icon_id: "17400069",
		name: "模板",
		font_class: "moban",
		unicode: "e664",
		unicode_decimal: 58980
	},
	{
		icon_id: "19868283",
		name: "连接",
		font_class: "lianjie2",
		unicode: "e877",
		unicode_decimal: 59511
	},
	{
		icon_id: "1609966",
		name: "列表",
		font_class: "liebiao",
		unicode: "e660",
		unicode_decimal: 58976
	},
	{
		icon_id: "15033741",
		name: "场站",
		font_class: "changzhan",
		unicode: "e661",
		unicode_decimal: 58977
	},
	{
		icon_id: "7848729",
		name: "集电线路",
		font_class: "jidianxianlu",
		unicode: "e65e",
		unicode_decimal: 58974
	},
	{
		icon_id: "9245105",
		name: "指标",
		font_class: "zhibiao",
		unicode: "e65f",
		unicode_decimal: 58975
	},
	{
		icon_id: "20041135",
		name: "工期-2",
		font_class: "gongqi-2",
		unicode: "e6e2",
		unicode_decimal: 59106
	},
	{
		icon_id: "11031774",
		name: "断开连接",
		font_class: "weilianjie",
		unicode: "e6f9",
		unicode_decimal: 59129
	},
	{
		icon_id: "12157794",
		name: "连接",
		font_class: "lianjie",
		unicode: "e658",
		unicode_decimal: 58968
	},
	{
		icon_id: "13814756",
		name: "连接",
		font_class: "lianjie1",
		unicode: "e659",
		unicode_decimal: 58969
	},
	{
		icon_id: "16840393",
		name: "断开",
		font_class: "duankai",
		unicode: "e718",
		unicode_decimal: 59160
	},
	{
		icon_id: "18633943",
		name: "断开",
		font_class: "duankai1",
		unicode: "e65a",
		unicode_decimal: 58970
	},
	{
		icon_id: "4734043",
		name: "重设密码",
		font_class: "zhongshemima",
		unicode: "e657",
		unicode_decimal: 58967
	},
	{
		icon_id: "19660053",
		name: "批量",
		font_class: "piliang",
		unicode: "e652",
		unicode_decimal: 58962
	},
	{
		icon_id: "12597164",
		name: "32-停机",
		font_class: "-tingji",
		unicode: "e736",
		unicode_decimal: 59190
	},
	{
		icon_id: "13809353",
		name: "恢复",
		font_class: "huifu",
		unicode: "eaf7",
		unicode_decimal: 60151
	},
	{
		icon_id: "3466492",
		name: "报警",
		font_class: "baojing1",
		unicode: "e6b9",
		unicode_decimal: 59065
	},
	{
		icon_id: "7714065",
		name: "操作日志",
		font_class: "caozuorizhi",
		unicode: "e72f",
		unicode_decimal: 59183
	},
	{
		icon_id: "8262666",
		name: "用户日志",
		font_class: "yonghurizhi",
		unicode: "e651",
		unicode_decimal: 58961
	},
	{
		icon_id: "9016702",
		name: "曲线",
		font_class: "quxian",
		unicode: "e654",
		unicode_decimal: 58964
	},
	{
		icon_id: "13496702",
		name: "风机",
		font_class: "fengji3",
		unicode: "e689",
		unicode_decimal: 59017
	},
	{
		icon_id: "19413251",
		name: "故障",
		font_class: "guzhang",
		unicode: "e655",
		unicode_decimal: 58965
	},
	{
		icon_id: "6330654",
		name: "历史查询",
		font_class: "lishichaxun",
		unicode: "e6ba",
		unicode_decimal: 59066
	},
	{
		icon_id: "1100542",
		name: "故障",
		font_class: "302",
		unicode: "e64f",
		unicode_decimal: 58959
	},
	{
		icon_id: "9444709",
		name: "能量",
		font_class: "nengliangbeifen",
		unicode: "e68b",
		unicode_decimal: 59019
	},
	{
		icon_id: "18711953",
		name: "风机",
		font_class: "fengji2",
		unicode: "e650",
		unicode_decimal: 58960
	},
	{
		icon_id: "16019771",
		name: "历史查询2",
		font_class: "lishichaxun2",
		unicode: "e7ac",
		unicode_decimal: 59308
	},
	{
		icon_id: "21055428",
		name: "对比 (2)",
		font_class: "duibi2",
		unicode: "e653",
		unicode_decimal: 58963
	},
	{
		icon_id: "7559866",
		name: "取消",
		font_class: "quxiao",
		unicode: "e64b",
		unicode_decimal: 58955
	},
	{
		icon_id: "13996823",
		name: "风机控制",
		font_class: "fengjikongzhi",
		unicode: "e688",
		unicode_decimal: 59016
	},
	{
		icon_id: "16368255",
		name: "勾选2",
		font_class: "gouxuan2",
		unicode: "e64c",
		unicode_decimal: 58956
	},
	{
		icon_id: "21586639",
		name: "风机",
		font_class: "fengji1",
		unicode: "e64e",
		unicode_decimal: 58958
	},
	{
		icon_id: "3640184",
		name: "基本信息",
		font_class: "jibenxinxi",
		unicode: "e647",
		unicode_decimal: 58951
	},
	{
		icon_id: "11043871",
		name: "控制",
		font_class: "kongzhi",
		unicode: "e648",
		unicode_decimal: 58952
	},
	{
		icon_id: "11173511",
		name: "向下",
		font_class: "down-fill1-xs",
		unicode: "e649",
		unicode_decimal: 58953
	},
	{
		icon_id: "16400089",
		name: "gw_监视器墙_0",
		font_class: "gw_jianshiqiqiang_0",
		unicode: "e872",
		unicode_decimal: 59506
	},
	{
		icon_id: "18759455",
		name: "排序",
		font_class: "sort",
		unicode: "e64a",
		unicode_decimal: 58954
	},
	{
		icon_id: "21545095",
		name: "停用红调",
		font_class: "tingyonghongtiao",
		unicode: "e646",
		unicode_decimal: 58950
	},
	{
		icon_id: "21545002",
		name: "停用灰调",
		font_class: "tingyonghuitiao",
		unicode: "e645",
		unicode_decimal: 58949
	},
	{
		icon_id: "21544330",
		name: "实时计算3",
		font_class: "shishijisuan3",
		unicode: "e643",
		unicode_decimal: 58947
	},
	{
		icon_id: "21543884",
		name: "上传111",
		font_class: "shangchuan111",
		unicode: "e641",
		unicode_decimal: 58945
	},
	{
		icon_id: "21543638",
		name: "采集绿色",
		font_class: "caijilvse",
		unicode: "e640",
		unicode_decimal: 58944
	},
	{
		icon_id: "21543430",
		name: "网关",
		font_class: "wangguan",
		unicode: "e63f",
		unicode_decimal: 58943
	},
	{
		icon_id: "21543128",
		name: "锅炉2",
		font_class: "guolu2",
		unicode: "e63e",
		unicode_decimal: 58942
	},
	{
		icon_id: "21542161",
		name: "系统 (2)",
		font_class: "xitong2",
		unicode: "e63c",
		unicode_decimal: 58940
	},
	{
		icon_id: "21541819",
		name: "机组111",
		font_class: "jizu111",
		unicode: "e63b",
		unicode_decimal: 58939
	},
	{
		icon_id: "21541669",
		name: "电厂 (2)",
		font_class: "dianchang2",
		unicode: "e63a",
		unicode_decimal: 58938
	},
	{
		icon_id: "21541478",
		name: "设备 (2)",
		font_class: "shebei2",
		unicode: "e639",
		unicode_decimal: 58937
	},
	{
		icon_id: "21541319",
		name: "其他设备",
		font_class: "qitashebei",
		unicode: "e615",
		unicode_decimal: 58901
	},
	{
		icon_id: "21534914",
		name: "上传2",
		font_class: "shangchuan2",
		unicode: "e60f",
		unicode_decimal: 58895
	},
	{
		icon_id: "21534788",
		name: "驱动管理",
		font_class: "qudongguanli",
		unicode: "e603",
		unicode_decimal: 58883
	},
	{
		icon_id: "21534789",
		name: "启动",
		font_class: "qidong",
		unicode: "e604",
		unicode_decimal: 58884
	},
	{
		icon_id: "21534790",
		name: "平台",
		font_class: "pingtai",
		unicode: "e605",
		unicode_decimal: 58885
	},
	{
		icon_id: "21534791",
		name: "配置",
		font_class: "peizhi",
		unicode: "e609",
		unicode_decimal: 58889
	},
	{
		icon_id: "21534792",
		name: "停用1",
		font_class: "tingyong1",
		unicode: "e60a",
		unicode_decimal: 58890
	},
	{
		icon_id: "21534793",
		name: "任务未下发",
		font_class: "renwuweixiafa",
		unicode: "e60b",
		unicode_decimal: 58891
	},
	{
		icon_id: "21534794",
		name: "删除",
		font_class: "shanchu",
		unicode: "e60c",
		unicode_decimal: 58892
	},
	{
		icon_id: "21534796",
		name: "系统设置",
		font_class: "xitongshezhi",
		unicode: "e610",
		unicode_decimal: 58896
	},
	{
		icon_id: "21534797",
		name: "设备",
		font_class: "shebei",
		unicode: "e612",
		unicode_decimal: 58898
	},
	{
		icon_id: "21534798",
		name: "下载失败",
		font_class: "xiazaishibai",
		unicode: "e613",
		unicode_decimal: 58899
	},
	{
		icon_id: "21534799",
		name: "系统设置1",
		font_class: "xitongshezhi1",
		unicode: "e614",
		unicode_decimal: 58900
	},
	{
		icon_id: "21534801",
		name: "系统日志",
		font_class: "xitongrizhi",
		unicode: "e616",
		unicode_decimal: 58902
	},
	{
		icon_id: "21534802",
		name: "采集",
		font_class: "caiji",
		unicode: "e617",
		unicode_decimal: 58903
	},
	{
		icon_id: "21534803",
		name: "用户",
		font_class: "yonghu",
		unicode: "e619",
		unicode_decimal: 58905
	},
	{
		icon_id: "21534804",
		name: "导入",
		font_class: "daoru",
		unicode: "e61a",
		unicode_decimal: 58906
	},
	{
		icon_id: "21534805",
		name: "编辑",
		font_class: "bianji",
		unicode: "e61c",
		unicode_decimal: 58908
	},
	{
		icon_id: "21534806",
		name: "下载",
		font_class: "xiazai",
		unicode: "e61d",
		unicode_decimal: 58909
	},
	{
		icon_id: "21534807",
		name: "系统设置2",
		font_class: "xitongshezhi2",
		unicode: "e61f",
		unicode_decimal: 58911
	},
	{
		icon_id: "21534808",
		name: "已下发",
		font_class: "yixiafa",
		unicode: "e621",
		unicode_decimal: 58913
	},
	{
		icon_id: "21534809",
		name: "发电厂",
		font_class: "fadianchang",
		unicode: "e623",
		unicode_decimal: 58915
	},
	{
		icon_id: "21534810",
		name: "系统监控",
		font_class: "xitongjiankong",
		unicode: "e626",
		unicode_decimal: 58918
	},
	{
		icon_id: "21534811",
		name: "锅炉",
		font_class: "guolu",
		unicode: "e627",
		unicode_decimal: 58919
	},
	{
		icon_id: "21534812",
		name: "电厂",
		font_class: "dianchang",
		unicode: "e62a",
		unicode_decimal: 58922
	},
	{
		icon_id: "21534813",
		name: "用户管理",
		font_class: "yonghuguanli",
		unicode: "e62b",
		unicode_decimal: 58923
	},
	{
		icon_id: "21534814",
		name: "停用",
		font_class: "tingyong",
		unicode: "e62c",
		unicode_decimal: 58924
	},
	{
		icon_id: "21534815",
		name: "接收",
		font_class: "jieshou",
		unicode: "e62d",
		unicode_decimal: 58925
	},
	{
		icon_id: "21534816",
		name: "机组",
		font_class: "jizu",
		unicode: "e62f",
		unicode_decimal: 58927
	},
	{
		icon_id: "21534817",
		name: "实时计算",
		font_class: "shishijisuan",
		unicode: "e630",
		unicode_decimal: 58928
	},
	{
		icon_id: "21534818",
		name: "监控",
		font_class: "jiankong1",
		unicode: "e631",
		unicode_decimal: 58929
	},
	{
		icon_id: "21534819",
		name: "开关1",
		font_class: "kaiguan1",
		unicode: "e632",
		unicode_decimal: 58930
	},
	{
		icon_id: "21534820",
		name: "查看",
		font_class: "chakan",
		unicode: "e633",
		unicode_decimal: 58931
	},
	{
		icon_id: "21534821",
		name: "开关",
		font_class: "kaiguan",
		unicode: "e634",
		unicode_decimal: 58932
	},
	{
		icon_id: "21534822",
		name: "分发",
		font_class: "fenfa",
		unicode: "e636",
		unicode_decimal: 58934
	},
	{
		icon_id: "21534823",
		name: "角色",
		font_class: "jiaose",
		unicode: "e637",
		unicode_decimal: 58935
	},
	{
		icon_id: "21534824",
		name: "采集1",
		font_class: "caiji1",
		unicode: "e638",
		unicode_decimal: 58936
	},
	{
		icon_id: "3515317",
		name: "更新",
		font_class: "gengxin",
		unicode: "e625",
		unicode_decimal: 58917
	},
	{
		icon_id: "4859088",
		name: "实时计算",
		font_class: "calculation",
		unicode: "e620",
		unicode_decimal: 58912
	},
	{
		icon_id: "6695124",
		name: "上传",
		font_class: "shangchuan",
		unicode: "e656",
		unicode_decimal: 58966
	},
	{
		icon_id: "6927865",
		name: "更新",
		font_class: "gengxin1",
		unicode: "e7db",
		unicode_decimal: 59355
	},
	{
		icon_id: "17536020",
		name: "文件夹",
		font_class: "wenjian1",
		unicode: "e670",
		unicode_decimal: 58992
	},
	{
		icon_id: "17764949",
		name: "文件夹",
		font_class: "wenjianjia1",
		unicode: "e7a6",
		unicode_decimal: 59302
	},
	{
		icon_id: "10666917",
		name: "成功",
		font_class: "chenggong",
		unicode: "e671",
		unicode_decimal: 58993
	},
	{
		icon_id: "1142736",
		name: "数据",
		font_class: "shuju",
		unicode: "e60e",
		unicode_decimal: 58894
	},
	{
		icon_id: "4739400",
		name: "运营",
		font_class: "yunying",
		unicode: "e644",
		unicode_decimal: 58948
	},
	{
		icon_id: "5255337",
		name: "用户名",
		font_class: "haikezhangguizhushou_yonghuming",
		unicode: "e622",
		unicode_decimal: 58914
	},
	{
		icon_id: "6537187",
		name: "复制",
		font_class: "fuzhi",
		unicode: "e66e",
		unicode_decimal: 58990
	},
	{
		icon_id: "7918919",
		name: "数据",
		font_class: "shuju1",
		unicode: "e601",
		unicode_decimal: 58881
	},
	{
		icon_id: "8444167",
		name: "更多",
		font_class: "down",
		unicode: "e602",
		unicode_decimal: 58882
	},
	{
		icon_id: "10918753",
		name: "展开",
		font_class: "zhankai1",
		unicode: "e618",
		unicode_decimal: 58904
	},
	{
		icon_id: "11108224",
		name: "主页",
		font_class: "zhuye",
		unicode: "e607",
		unicode_decimal: 58887
	},
	{
		icon_id: "11563365",
		name: "消息通知",
		font_class: "xiaoxitongzhi",
		unicode: "e65c",
		unicode_decimal: 58972
	},
	{
		icon_id: "12728450",
		name: "接入",
		font_class: "jieru",
		unicode: "e68a",
		unicode_decimal: 59018
	},
	{
		icon_id: "14698909",
		name: "报警",
		font_class: "bj",
		unicode: "e608",
		unicode_decimal: 58888
	},
	{
		icon_id: "14789476",
		name: "可视化",
		font_class: "keshihua",
		unicode: "e624",
		unicode_decimal: 58916
	},
	{
		icon_id: "15631425",
		name: "监控",
		font_class: "jiankong",
		unicode: "e629",
		unicode_decimal: 58921
	},
	{
		icon_id: "18916436",
		name: "报警",
		font_class: "baojing",
		unicode: "e6b8",
		unicode_decimal: 59064
	},
	{
		icon_id: "19410111",
		name: "密 码",
		font_class: "mima",
		unicode: "e611",
		unicode_decimal: 58897
	},
	{
		icon_id: "19739747",
		name: "密码",
		font_class: "suozi",
		unicode: "e66d",
		unicode_decimal: 58989
	},
	{
		icon_id: "20344795",
		name: "用户名",
		font_class: "yonghuming",
		unicode: "e628",
		unicode_decimal: 58920
	},
	{
		icon_id: "7639",
		name: "窗口放大",
		font_class: "chuangkoufangda",
		unicode: "e600",
		unicode_decimal: 58880
	},
	{
		icon_id: "1130659",
		name: "添加",
		font_class: "tianjia",
		unicode: "e635",
		unicode_decimal: 58933
	},
	{
		icon_id: "1488891",
		name: "查询",
		font_class: "chaxun",
		unicode: "e606",
		unicode_decimal: 58886
	},
	{
		icon_id: "1547848",
		name: "061操作_全屏放大3",
		font_class: "caozuo_quanpingfangda",
		unicode: "e694",
		unicode_decimal: 59028
	},
	{
		icon_id: "4942664",
		name: "收起",
		font_class: "shouqi",
		unicode: "e61e",
		unicode_decimal: 58910
	},
	{
		icon_id: "10031191",
		name: "缩小",
		font_class: "suoxiao",
		unicode: "e61b",
		unicode_decimal: 58907
	},
	{
		icon_id: "12729177",
		name: "展开",
		font_class: "zhankai",
		unicode: "e60d",
		unicode_decimal: 58893
	},
	{
		icon_id: "13905862",
		name: "文件",
		font_class: "wenjian",
		unicode: "e62e",
		unicode_decimal: 58926
	},
	{
		icon_id: "15192664",
		name: "刷新",
		font_class: "shuaxin",
		unicode: "e63d",
		unicode_decimal: 58941
	},
	{
		icon_id: "15765396",
		name: "数据看板",
		font_class: "shujukanban",
		unicode: "e6cf",
		unicode_decimal: 59087
	},
	{
		icon_id: "18863167",
		name: "放大",
		font_class: "fangda",
		unicode: "e642",
		unicode_decimal: 58946
	},
	{
		icon_id: "19671108",
		name: "文件夹",
		font_class: "wenjianjia",
		unicode: "e7a7",
		unicode_decimal: 59303
	}
];
var iconfontData = {
	id: id,
	name: name,
	font_family: font_family,
	css_prefix_text: css_prefix_text,
	description: description,
	glyphs: glyphs
};

var script$b = defineComponent({
    name: "magusChooseIcon",
    components: {},
    props: {
        isShow: {
            type: Boolean,
            default: false
        }
    },
    data() {
        return {};
    },
    setup(props, context) {
        const state = reactive({
            iconData: {}
        });
        state.iconData = iconfontData;
        const methods = {
            cancelChoose() {
                context.emit("cancelChoose", {});
            },
            changeIcon(str) {
                context.emit("changeIcon", { icon: str });
            }
        };
        return {
            ...toRefs(state),
            ...methods
        };
    }
});

const _hoisted_1$f = { class: "choose-iconfont-inner" };
const _hoisted_2$c = { class: "choose-iconfont-inner-con" };
const _hoisted_3$8 = ["onClick"];

function render$b(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_magus_icon_svg = resolveComponent("magus-icon-svg");
  const _component_el_button = resolveComponent("el-button");
  const _component_magus_dialog = resolveComponent("magus-dialog");

  return (openBlock(), createBlock(_component_magus_dialog, {
    isShow: _ctx.isShow,
    "before-close": _ctx.cancelChoose,
    title: _ctx.$t('global.dialogTitle.chooseIcon'),
    width: "50%"
  }, {
    dialogContent: withCtx(() => [
      createElementVNode("div", _hoisted_1$f, [
        createElementVNode("ul", _hoisted_2$c, [
          (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.iconData.glyphs, (item, index) => {
            return (openBlock(), createElementBlock("li", {
              onClick: $event => (_ctx.changeIcon(`#${_ctx.iconData['css_prefix_text']}${item['font_class']}`)),
              key: index
            }, [
              createElementVNode("p", null, [
                createVNode(_component_magus_icon_svg, {
                  size: 50,
                  icon: `#${_ctx.iconData['css_prefix_text']}${item['font_class']}`
                }, null, 8 /* PROPS */, ["icon"])
              ]),
              createElementVNode("p", null, toDisplayString(item.name), 1 /* TEXT */)
            ], 8 /* PROPS */, _hoisted_3$8))
          }), 128 /* KEYED_FRAGMENT */))
        ])
      ])
    ]),
    dialogBtn: withCtx(() => [
      createVNode(_component_el_button, {
        size: "small",
        onClick: _ctx.cancelChoose
      }, {
        default: withCtx(() => [
          createTextVNode(toDisplayString(_ctx.$t("global.action.cancel")), 1 /* TEXT */)
        ]),
        _: 1 /* STABLE */
      }, 8 /* PROPS */, ["onClick"])
    ]),
    _: 1 /* STABLE */
  }, 8 /* PROPS */, ["isShow", "before-close", "title"]))
}

script$b.render = render$b;
script$b.__file = "packages/components/magusChooseIcon/src/index.vue";

/*
 * @Description:
 * @Version: 1.0
 * @Author: wenbin
 * @Date: 2021-11-08 16:28:30
 * @LastEditors: wenbin
 * @LastEditTime: 2021-11-08 16:57:17
 * @FilePath: /jwb-vue3-ui/packages/components/magusChooseIcon/index.ts
 * Copyright (C) 2021 wenbin. All rights reserved.
 */
const magusChooseIcon = withInstall$1(script$b);

var script$a = defineComponent({
    name: "magusDialog",
    components: {},
    props: {
        width: {
            type: String,
            default: "30%"
        },
        isShow: {
            type: Boolean,
            default: false
        },
        title: {
            type: String,
            default: ""
        }
    },
    data() {
        return {};
    },
    setup() { }
});

const _hoisted_1$e = {
  key: 0,
  class: "dialog-content"
};
const _hoisted_2$b = { class: "dialog-footer" };

function render$a(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_el_dialog = resolveComponent("el-dialog");

  return (openBlock(), createBlock(_component_el_dialog, mergeProps({ title: _ctx.title }, _ctx.$attrs, {
    "model-value": _ctx.isShow,
    "append-to-body": false,
    "close-on-click-modal": false,
    "close-on-press-escape": false,
    width: _ctx.width,
    draggable: ""
  }), createSlots({
    default: withCtx(() => [
      (_ctx.$slots.dialogContent)
        ? (openBlock(), createElementBlock("div", _hoisted_1$e, [
            renderSlot(_ctx.$slots, "dialogContent")
          ]))
        : createCommentVNode("v-if", true)
    ]),
    _: 2 /* DYNAMIC */
  }, [
    (_ctx.$slots.dialogBtn)
      ? {
          name: "footer",
          fn: withCtx(() => [
            createElementVNode("span", _hoisted_2$b, [
              renderSlot(_ctx.$slots, "dialogBtn")
            ])
          ])
        }
      : undefined
  ]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, ["title", "model-value", "width"]))
}

script$a.render = render$a;
script$a.__file = "packages/components/magusDialog/src/index.vue";

/*
 * @Description:
 * @Version: 1.0
 * @Author: wenbin
 * @Date: 2021-11-08 16:58:35
 * @LastEditors: wenbin
 * @LastEditTime: 2021-11-08 17:11:05
 * @FilePath: /jwb-vue3-ui/packages/components/magusDialog/index.ts
 * Copyright (C) 2021 wenbin. All rights reserved.
 */
const magusDialog = withInstall$1(script$a);

var script$9 = defineComponent({
    name: "magusIcon",
    components: {},
    props: {
        color: String,
        size: [Number, String],
        icon: String
    },
    data() {
        return {};
    }
});

function render$9(_ctx, _cache, $props, $setup, $data, $options) {
  return (openBlock(), createElementBlock("i", {
    class: normalizeClass(["magusdip-iconfont", _ctx.icon]),
    style: normalizeStyle({ color: _ctx.color, 'font-size': `${_ctx.size}px` })
  }, null, 6 /* CLASS, STYLE */))
}

script$9.render = render$9;
script$9.__file = "packages/components/magusIcon/src/index.vue";

/*
 * @Description:
 * @Version: 1.0
 * @Author: wenbin
 * @Date: 2021-11-09 09:20:43
 * @LastEditors: wenbin
 * @LastEditTime: 2021-11-09 09:22:44
 * @FilePath: /jwb-vue3-ui/packages/components/magusIcon/index.ts
 * Copyright (C) 2021 wenbin. All rights reserved.
 */
const magusIcon = withInstall$1(script$9);

var script$8 = defineComponent({
    name: "magusIconSvg",
    components: {},
    props: {
        size: {
            type: [String, Number],
            default: 16
        },
        icon: {
            type: String,
            default: ""
        }
    },
    data() {
        return {};
    },
    setup() {
        return {};
    }
});

const _hoisted_1$d = ["xlink:href"];

function render$8(_ctx, _cache, $props, $setup, $data, $options) {
  return (openBlock(), createElementBlock("svg", {
    class: "icon",
    "aria-hidden": "true",
    style: normalizeStyle({ width: _ctx.size + 'px', height: _ctx.size + 'px' })
  }, [
    createElementVNode("use", { "xlink:href": _ctx.icon }, null, 8 /* PROPS */, _hoisted_1$d)
  ], 4 /* STYLE */))
}

script$8.render = render$8;
script$8.__file = "packages/components/magusIconSvg/src/index.vue";

/*
 * @Description:
 * @Version: 1.0
 * @Author: wenbin
 * @Date: 2021-11-09 09:23:44
 * @LastEditors: wenbin
 * @LastEditTime: 2021-11-09 09:24:55
 * @FilePath: /jwb-vue3-ui/packages/components/magusIconSvg/index.ts
 * Copyright (C) 2021 wenbin. All rights reserved.
 */
const magusIconSvg = withInstall$1(script$8);

var script$7 = defineComponent({
    name: "magus-dict-label",
    components: {},
    props: {
        code: {
            required: true,
            type: String
        },
        showType: {
            type: String,
            default: "name" // 接收value 或者 name
        },
        findType: {
            type: String,
            default: "value" // 接收value 或者 name
        },
        value: {
            required: true
        }
    },
    data() {
        return {};
    },
    setup(props) {
        const { code, showType, findType, value } = props;
        /**
         * @description: 参数集合
         * @param {*}
         * @return {*}
         */
        const state = reactive({
            labelValue: ""
        });
        /**
         * @description: 方法集合
         * @param {*}
         * @return {*}
         */
        const methods = {
            // 获取字典值
            getDictLabel() {
                const dictionary = localStorage.getItem("dictionary");
                if (dictionary) {
                    const dictionaryCatch = JSON.parse(dictionary);
                    const optionObj = dictionaryCatch.find((i) => i.code === code);
                    if (optionObj && optionObj.items) {
                        const optionObjItem = optionObj.items;
                        const showData = optionObjItem.find((i) => i[findType] === value);
                        if (showData) {
                            state.labelValue = showData[showType];
                        }
                    }
                }
            }
        };
        methods.getDictLabel();
        watch(() => value, () => {
            methods.getDictLabel();
        }, { deep: true });
        return {
            ...toRefs(state),
            ...methods
        };
    }
});

const _hoisted_1$c = { class: "magus-dict-label" };

function render$7(_ctx, _cache, $props, $setup, $data, $options) {
  return (openBlock(), createElementBlock("label", _hoisted_1$c, toDisplayString(_ctx.labelValue), 1 /* TEXT */))
}

script$7.render = render$7;
script$7.__file = "packages/components/magusDictLabel/src/index.vue";

/*
 * @Description:
 * @Version: 1.0
 * @Author: wenbin
 * @Date: 2021-11-09 10:34:03
 * @LastEditors: wenbin
 * @LastEditTime: 2021-11-09 10:48:45
 * @FilePath: /jwb-vue3-ui/packages/components/magusDictLabel/index.ts
 * Copyright (C) 2021 wenbin. All rights reserved.
 */
const magusDictLabel = withInstall$1(script$7);

var script$6 = defineComponent({
    name: "magus-dict-select",
    components: {},
    props: {
        value: {
            required: true
        },
        code: {
            required: true,
            type: String
        }
    },
    data() {
        return {};
    },
    setup(props, context) {
        const { value, code } = props;
        const state = reactive({
            myValue: value,
            options: []
        });
        const methods = {
            handleChange(event) {
                context.emit("change", event);
            },
            /**
             * @description: 获取下拉框数据
             * @param {*}
             * @return {*}
             */
            getOption() {
                const dictionary = localStorage.getItem("dictionary");
                if (dictionary) {
                    const dictionaryCatch = JSON.parse(dictionary);
                    const optionObj = dictionaryCatch.find((i) => i.code === code);
                    if (optionObj) {
                        state.options = optionObj.items;
                    }
                    else {
                        state.options = [];
                    }
                }
                else {
                    state.options = [];
                }
            }
        };
        methods.getOption();
        watch(() => value, val => {
            state.myValue = val;
        }, { deep: true });
        watch(() => code, () => {
            methods.getOption();
        }, { deep: true });
        watch(() => state.myValue, val => {
            context.emit("input", val);
        }, { deep: true });
        return {
            ...toRefs(state),
            ...methods
        };
    }
});

function render$6(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_el_option = resolveComponent("el-option");
  const _component_el_select = resolveComponent("el-select");

  return (openBlock(), createBlock(_component_el_select, mergeProps({
    modelValue: _ctx.myValue,
    "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => ((_ctx.myValue) = $event))
  }, _ctx.$attrs, { onChange: _ctx.handleChange }), {
    default: withCtx(() => [
      (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.options, (item) => {
        return (openBlock(), createBlock(_component_el_option, {
          key: item.value,
          label: item.name,
          value: item.value
        }, null, 8 /* PROPS */, ["label", "value"]))
      }), 128 /* KEYED_FRAGMENT */))
    ]),
    _: 1 /* STABLE */
  }, 16 /* FULL_PROPS */, ["modelValue", "onChange"]))
}

script$6.render = render$6;
script$6.__file = "packages/components/magusDictSelect/src/index.vue";

/*
 * @Description:
 * @Version: 1.0
 * @Author: wenbin
 * @Date: 2021-11-09 10:50:59
 * @LastEditors: wenbin
 * @LastEditTime: 2021-11-09 13:47:12
 * @FilePath: /jwb-vue3-ui/packages/components/magusDictSelect/index.ts
 * Copyright (C) 2021 wenbin. All rights reserved.
 */
const magusDictSelect = withInstall$1(script$6);

var script$5 = defineComponent({
    name: "magusError",
    components: {},
    props: {
        imgUrl: {
            type: String,
            default: ""
        },
        message: {
            type: String,
            default: ""
        }
    },
    data() {
        return {};
    },
    setup(props, context) {
        const { imgUrl, message } = props;
        const state = reactive({
            imgUrl: imgUrl
        });
        const methods = {
            goBack() {
                context.emit("back", {});
            }
        };
        return {
            ...toRefs(state),
            ...methods
        };
    }
});

const _hoisted_1$b = { class: "magus-error-inner" };
const _hoisted_2$a = { class: "magus-error-msg" };

function render$5(_ctx, _cache, $props, $setup, $data, $options) {
  return (openBlock(), createElementBlock("div", {
    class: "magus-error",
    style: normalizeStyle({ backgroundImage: `url('${_ctx.imgUrl}')` })
  }, [
    createElementVNode("div", _hoisted_1$b, [
      createElementVNode("span", _hoisted_2$a, toDisplayString(_ctx.$t("global.request.errMsg_404")), 1 /* TEXT */),
      createElementVNode("button", {
        onClick: _cache[0] || (_cache[0] = (...args) => (_ctx.goBack && _ctx.goBack(...args))),
        class: "magus-error-button"
      }, toDisplayString(_ctx.$t("global.action.backHome")), 1 /* TEXT */)
    ])
  ], 4 /* STYLE */))
}

script$5.render = render$5;
script$5.__file = "packages/components/magusError/src/index.vue";

/*
 * @Description:
 * @Version: 1.0
 * @Author: wenbin
 * @Date: 2021-11-09 13:49:03
 * @LastEditors: wenbin
 * @LastEditTime: 2021-11-09 13:59:30
 * @FilePath: /jwb-vue3-ui/packages/components/magusError/index.ts
 * Copyright (C) 2021 wenbin. All rights reserved.
 */
const magusError = withInstall$1(script$5);

/**
 * The inverse of `_.toPairs`; this method returns an object composed
 * from key-value `pairs`.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Array
 * @param {Array} pairs The key-value pairs.
 * @returns {Object} Returns the new object.
 * @example
 *
 * _.fromPairs([['a', 1], ['b', 2]]);
 * // => { 'a': 1, 'b': 2 }
 */
function fromPairs(pairs) {
  var index = -1,
      length = pairs == null ? 0 : pairs.length,
      result = {};

  while (++index < length) {
    var pair = pairs[index];
    result[pair[0]] = pair[1];
  }
  return result;
}

function tryOnScopeDispose(fn) {
  if (getCurrentScope()) {
    onScopeDispose(fn);
    return true;
  }
  return false;
}

const isClient = typeof window !== "undefined";
const isNumber = (val) => typeof val === "number";
const isString$1 = (val) => typeof val === "string";
const noop = () => {
};

function useTimeoutFn(cb, interval, options = {}) {
  const {
    immediate = true
  } = options;
  const isPending = ref(false);
  let timer = null;
  function clear() {
    if (timer) {
      clearTimeout(timer);
      timer = null;
    }
  }
  function stop() {
    isPending.value = false;
    clear();
  }
  function start(...args) {
    clear();
    isPending.value = true;
    timer = setTimeout(() => {
      isPending.value = false;
      timer = null;
      cb(...args);
    }, unref(interval));
  }
  if (immediate) {
    isPending.value = true;
    if (isClient)
      start();
  }
  tryOnScopeDispose(stop);
  return {
    isPending,
    start,
    stop
  };
}

function unrefElement(elRef) {
  var _a;
  const plain = unref(elRef);
  return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;
}

const defaultWindow = isClient ? window : void 0;

function useEventListener(...args) {
  let target;
  let event;
  let listener;
  let options;
  if (isString$1(args[0])) {
    [event, listener, options] = args;
    target = defaultWindow;
  } else {
    [target, event, listener, options] = args;
  }
  if (!target)
    return noop;
  let cleanup = noop;
  const stopWatch = watch(() => unrefElement(target), (el) => {
    cleanup();
    if (!el)
      return;
    el.addEventListener(event, listener, options);
    cleanup = () => {
      el.removeEventListener(event, listener, options);
      cleanup = noop;
    };
  }, { immediate: true, flush: "post" });
  const stop = () => {
    stopWatch();
    cleanup();
  };
  tryOnScopeDispose(stop);
  return stop;
}

const _global = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
const globalKey = "__vueuse_ssr_handlers__";
_global[globalKey] = _global[globalKey] || {};
_global[globalKey];

var _a, _b;
isClient && (window == null ? void 0 : window.navigator) && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.platform) && /iP(ad|hone|od)/.test((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.platform);

/**
 * Make a map and return a function for checking if a key
 * is in that map.
 * IMPORTANT: all calls of this function must be prefixed with
 * \/\*#\_\_PURE\_\_\*\/
 * So that rollup can tree-shake them if necessary.
 */

(process.env.NODE_ENV !== 'production')
    ? Object.freeze({})
    : {};
(process.env.NODE_ENV !== 'production') ? Object.freeze([]) : [];
const hasOwnProperty = Object.prototype.hasOwnProperty;
const hasOwn = (val, key) => hasOwnProperty.call(val, key);
const isFunction = (val) => typeof val === 'function';
const isString = (val) => typeof val === 'string';
const isObject = (val) => val !== null && typeof val === 'object';

const isUndefined = (val) => val === void 0;
const isElement = (e) => {
  if (typeof Element === "undefined")
    return false;
  return e instanceof Element;
};

const keysOf = (arr) => Object.keys(arr);

var _export_sfc$1 = (sfc, props) => {
  const target = sfc.__vccOpts || sfc;
  for (const [key, val] of props) {
    target[key] = val;
  }
  return target;
};

const _sfc_main$7 = defineComponent({
  name: "CircleCloseFilled"
});
const _hoisted_1$a = {
  viewBox: "0 0 1024 1024",
  xmlns: "http://www.w3.org/2000/svg"
};
const _hoisted_2$9 = /* @__PURE__ */ createElementVNode("path", {
  fill: "currentColor",
  d: "M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z"
}, null, -1);
const _hoisted_3$7 = [
  _hoisted_2$9
];
function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("svg", _hoisted_1$a, _hoisted_3$7);
}
var circleCloseFilled = /* @__PURE__ */ _export_sfc$1(_sfc_main$7, [["render", _sfc_render$5]]);

const _sfc_main$6 = defineComponent({
  name: "Close"
});
const _hoisted_1$9 = {
  viewBox: "0 0 1024 1024",
  xmlns: "http://www.w3.org/2000/svg"
};
const _hoisted_2$8 = /* @__PURE__ */ createElementVNode("path", {
  fill: "currentColor",
  d: "M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"
}, null, -1);
const _hoisted_3$6 = [
  _hoisted_2$8
];
function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("svg", _hoisted_1$9, _hoisted_3$6);
}
var close$1 = /* @__PURE__ */ _export_sfc$1(_sfc_main$6, [["render", _sfc_render$4]]);

const _sfc_main$5 = defineComponent({
  name: "InfoFilled"
});
const _hoisted_1$8 = {
  viewBox: "0 0 1024 1024",
  xmlns: "http://www.w3.org/2000/svg"
};
const _hoisted_2$7 = /* @__PURE__ */ createElementVNode("path", {
  fill: "currentColor",
  d: "M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64zm67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344zM590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"
}, null, -1);
const _hoisted_3$5 = [
  _hoisted_2$7
];
function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("svg", _hoisted_1$8, _hoisted_3$5);
}
var infoFilled = /* @__PURE__ */ _export_sfc$1(_sfc_main$5, [["render", _sfc_render$3]]);

const _sfc_main$4 = defineComponent({
  name: "SuccessFilled"
});
const _hoisted_1$7 = {
  viewBox: "0 0 1024 1024",
  xmlns: "http://www.w3.org/2000/svg"
};
const _hoisted_2$6 = /* @__PURE__ */ createElementVNode("path", {
  fill: "currentColor",
  d: "M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336L456.192 600.384z"
}, null, -1);
const _hoisted_3$4 = [
  _hoisted_2$6
];
function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("svg", _hoisted_1$7, _hoisted_3$4);
}
var successFilled = /* @__PURE__ */ _export_sfc$1(_sfc_main$4, [["render", _sfc_render$2]]);

const _sfc_main$3 = defineComponent({
  name: "WarningFilled"
});
const _hoisted_1$6 = {
  viewBox: "0 0 1024 1024",
  xmlns: "http://www.w3.org/2000/svg"
};
const _hoisted_2$5 = /* @__PURE__ */ createElementVNode("path", {
  fill: "currentColor",
  d: "M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256zm0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4z"
}, null, -1);
const _hoisted_3$3 = [
  _hoisted_2$5
];
function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("svg", _hoisted_1$6, _hoisted_3$3);
}
var warningFilled = /* @__PURE__ */ _export_sfc$1(_sfc_main$3, [["render", _sfc_render$1]]);

const wrapperKey = Symbol();
const propKey = "__elPropsReservedKey";
function buildProp(option, key) {
  if (!isObject(option) || !!option[propKey])
    return option;
  const { values, required, default: defaultValue, type, validator } = option;
  const _validator = values || validator ? (val) => {
    let valid = false;
    let allowedValues = [];
    if (values) {
      allowedValues = Array.from(values);
      if (hasOwn(option, "default")) {
        allowedValues.push(defaultValue);
      }
      valid || (valid = allowedValues.includes(val));
    }
    if (validator)
      valid || (valid = validator(val));
    if (!valid && allowedValues.length > 0) {
      const allowValuesText = [...new Set(allowedValues)].map((value) => JSON.stringify(value)).join(", ");
      warn(`Invalid prop: validation failed${key ? ` for prop "${key}"` : ""}. Expected one of [${allowValuesText}], got value ${JSON.stringify(val)}.`);
    }
    return valid;
  } : void 0;
  const prop = {
    type: isObject(type) && Object.getOwnPropertySymbols(type).includes(wrapperKey) ? type[wrapperKey] : type,
    required: !!required,
    validator: _validator,
    [propKey]: true
  };
  if (hasOwn(option, "default"))
    prop.default = defaultValue;
  return prop;
}
const buildProps = (props) => fromPairs(Object.entries(props).map(([key, option]) => [
  key,
  buildProp(option, key)
]));
const definePropType = (val) => ({ [wrapperKey]: val });

const iconPropType = definePropType([
  String,
  Object,
  Function
]);
const TypeComponents = {
  Close: close$1,
  SuccessFilled: successFilled,
  InfoFilled: infoFilled,
  WarningFilled: warningFilled,
  CircleCloseFilled: circleCloseFilled
};
const TypeComponentsMap = {
  success: successFilled,
  warning: warningFilled,
  error: circleCloseFilled,
  info: infoFilled
};

const withInstall = (main, extra) => {
  main.install = (app) => {
    for (const comp of [main, ...Object.values(extra != null ? extra : {})]) {
      app.component(comp.name, comp);
    }
  };
  if (extra) {
    for (const [key, comp] of Object.entries(extra)) {
      main[key] = comp;
    }
  }
  return main;
};
const withInstallFunction = (fn, name) => {
  fn.install = (app) => {
    fn._context = app._context;
    app.config.globalProperties[name] = fn;
  };
  return fn;
};

class ElementPlusError extends Error {
  constructor(m) {
    super(m);
    this.name = "ElementPlusError";
  }
}
function debugWarn(scope, message) {
  if (process.env.NODE_ENV !== "production") {
    const error = isString(scope) ? new ElementPlusError(`[${scope}] ${message}`) : scope;
    console.warn(error);
  }
}

const SCOPE = "utils/vue/style";
function addUnit(value, defaultUnit = "px") {
  if (!value)
    return "";
  if (isString(value)) {
    return value;
  } else if (isNumber(value)) {
    return `${value}${defaultUnit}`;
  }
  debugWarn(SCOPE, "binding value must be a string or number");
}

const EVENT_CODE = {
  tab: "Tab",
  enter: "Enter",
  space: "Space",
  left: "ArrowLeft",
  up: "ArrowUp",
  right: "ArrowRight",
  down: "ArrowDown",
  esc: "Escape",
  delete: "Delete",
  backspace: "Backspace",
  numpadEnter: "NumpadEnter",
  pageUp: "PageUp",
  pageDown: "PageDown",
  home: "Home",
  end: "End"
};

const componentSizes = ["", "default", "small", "large"];

const configProviderContextKey = Symbol();

const globalConfig = ref();
function useGlobalConfig(key, defaultValue = void 0) {
  const config = getCurrentInstance() ? inject(configProviderContextKey, globalConfig) : globalConfig;
  if (key) {
    return computed(() => {
      var _a, _b;
      return (_b = (_a = config.value) == null ? void 0 : _a[key]) != null ? _b : defaultValue;
    });
  } else {
    return config;
  }
}
const provideGlobalConfig = (config, app, global = false) => {
  var _a;
  const inSetup = !!getCurrentInstance();
  const oldConfig = inSetup ? useGlobalConfig() : void 0;
  const provideFn = (_a = app == null ? void 0 : app.provide) != null ? _a : inSetup ? provide : void 0;
  if (!provideFn) {
    debugWarn("provideGlobalConfig", "provideGlobalConfig() can only be used inside setup().");
    return;
  }
  const context = computed(() => {
    const cfg = unref(config);
    if (!(oldConfig == null ? void 0 : oldConfig.value))
      return cfg;
    return mergeConfig(oldConfig.value, cfg);
  });
  provideFn(configProviderContextKey, context);
  if (global || !globalConfig.value) {
    globalConfig.value = context.value;
  }
  return context;
};
const mergeConfig = (a, b) => {
  var _a;
  const keys = [.../* @__PURE__ */ new Set([...keysOf(a), ...keysOf(b)])];
  const obj = {};
  for (const key of keys) {
    obj[key] = (_a = b[key]) != null ? _a : a[key];
  }
  return obj;
};

const defaultNamespace = "el";
const statePrefix = "is-";
const _bem = (namespace, block, blockSuffix, element, modifier) => {
  let cls = `${namespace}-${block}`;
  if (blockSuffix) {
    cls += `-${blockSuffix}`;
  }
  if (element) {
    cls += `__${element}`;
  }
  if (modifier) {
    cls += `--${modifier}`;
  }
  return cls;
};
const useNamespace = (block) => {
  const globalConfig = useGlobalConfig("namespace");
  const namespace = computed(() => globalConfig.value || defaultNamespace);
  const b = (blockSuffix = "") => _bem(unref(namespace), block, blockSuffix, "", "");
  const e = (element) => element ? _bem(unref(namespace), block, "", element, "") : "";
  const m = (modifier) => modifier ? _bem(unref(namespace), block, "", "", modifier) : "";
  const be = (blockSuffix, element) => blockSuffix && element ? _bem(unref(namespace), block, blockSuffix, element, "") : "";
  const em = (element, modifier) => element && modifier ? _bem(unref(namespace), block, "", element, modifier) : "";
  const bm = (blockSuffix, modifier) => blockSuffix && modifier ? _bem(unref(namespace), block, blockSuffix, "", modifier) : "";
  const bem = (blockSuffix, element, modifier) => blockSuffix && element && modifier ? _bem(unref(namespace), block, blockSuffix, element, modifier) : "";
  const is = (name, ...args) => {
    const state = args.length >= 1 ? args[0] : true;
    return name && state ? `${statePrefix}${name}` : "";
  };
  return {
    namespace,
    b,
    e,
    m,
    be,
    em,
    bm,
    bem,
    is
  };
};

const zIndex = ref(0);
const useZIndex = () => {
  const initialZIndex = useGlobalConfig("zIndex", 2e3);
  const currentZIndex = computed(() => initialZIndex.value + zIndex.value);
  const nextZIndex = () => {
    zIndex.value++;
    return currentZIndex.value;
  };
  return {
    initialZIndex,
    currentZIndex,
    nextZIndex
  };
};

var _export_sfc = (sfc, props) => {
  const target = sfc.__vccOpts || sfc;
  for (const [key, val] of props) {
    target[key] = val;
  }
  return target;
};

const iconProps = buildProps({
  size: {
    type: definePropType([Number, String])
  },
  color: {
    type: String
  }
});

const __default__$1 = {
  name: "ElIcon",
  inheritAttrs: false
};
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
  ...__default__$1,
  props: iconProps,
  setup(__props) {
    const props = __props;
    const ns = useNamespace("icon");
    const style = computed(() => {
      if (!props.size && !props.color)
        return {};
      return {
        fontSize: isUndefined(props.size) ? void 0 : addUnit(props.size),
        "--color": props.color
      };
    });
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("i", mergeProps({
        class: unref(ns).b(),
        style: unref(style)
      }, _ctx.$attrs), [
        renderSlot(_ctx.$slots, "default")
      ], 16);
    };
  }
});
var Icon = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/icon/src/icon.vue"]]);

const ElIcon = withInstall(Icon);

const badgeProps = buildProps({
  value: {
    type: [String, Number],
    default: ""
  },
  max: {
    type: Number,
    default: 99
  },
  isDot: Boolean,
  hidden: Boolean,
  type: {
    type: String,
    values: ["primary", "success", "warning", "info", "danger"],
    default: "danger"
  }
});

const _hoisted_1$5 = ["textContent"];
const __default__ = {
  name: "ElBadge"
};
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
  ...__default__,
  props: badgeProps,
  setup(__props, { expose }) {
    const props = __props;
    const ns = useNamespace("badge");
    const content = computed(() => {
      if (props.isDot)
        return "";
      if (isNumber(props.value) && isNumber(props.max)) {
        return props.max < props.value ? `${props.max}+` : `${props.value}`;
      }
      return `${props.value}`;
    });
    expose({
      content
    });
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", {
        class: normalizeClass(unref(ns).b())
      }, [
        renderSlot(_ctx.$slots, "default"),
        createVNode(Transition, {
          name: `${unref(ns).namespace.value}-zoom-in-center`
        }, {
          default: withCtx(() => [
            withDirectives(createElementVNode("sup", {
              class: normalizeClass([
                unref(ns).e("content"),
                unref(ns).em("content", _ctx.type),
                unref(ns).is("fixed", !!_ctx.$slots.default),
                unref(ns).is("dot", _ctx.isDot)
              ]),
              textContent: toDisplayString(unref(content))
            }, null, 10, _hoisted_1$5), [
              [vShow, !_ctx.hidden && (unref(content) || unref(content) === "0" || _ctx.isDot)]
            ])
          ]),
          _: 1
        }, 8, ["name"])
      ], 2);
    };
  }
});
var Badge = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/badge/src/badge.vue"]]);

const ElBadge = withInstall(Badge);

const messageConfig = {};
const configProviderProps = buildProps({
  a11y: {
    type: Boolean,
    default: true
  },
  locale: {
    type: definePropType(Object)
  },
  size: {
    type: String,
    values: componentSizes,
    default: ""
  },
  button: {
    type: definePropType(Object)
  },
  experimentalFeatures: {
    type: definePropType(Object)
  },
  keyboardNavigation: {
    type: Boolean,
    default: true
  },
  message: {
    type: definePropType(Object)
  },
  zIndex: {
    type: Number
  },
  namespace: {
    type: String,
    default: "el"
  }
});
defineComponent({
  name: "ElConfigProvider",
  props: configProviderProps,
  setup(props, { slots }) {
    watch(() => props.message, (val) => {
      Object.assign(messageConfig, val != null ? val : {});
    }, { immediate: true, deep: true });
    const config = provideGlobalConfig(props);
    return () => renderSlot(slots, "default", { config: config == null ? void 0 : config.value });
  }
});

const messageTypes = ["success", "info", "warning", "error"];
const messageProps = buildProps({
  customClass: {
    type: String,
    default: ""
  },
  center: {
    type: Boolean,
    default: false
  },
  dangerouslyUseHTMLString: {
    type: Boolean,
    default: false
  },
  duration: {
    type: Number,
    default: 3e3
  },
  icon: {
    type: iconPropType,
    default: ""
  },
  id: {
    type: String,
    default: ""
  },
  message: {
    type: definePropType([
      String,
      Object,
      Function
    ]),
    default: ""
  },
  onClose: {
    type: definePropType(Function),
    required: false
  },
  showClose: {
    type: Boolean,
    default: false
  },
  type: {
    type: String,
    values: messageTypes,
    default: "info"
  },
  offset: {
    type: Number,
    default: 20
  },
  zIndex: {
    type: Number,
    default: 0
  },
  grouping: {
    type: Boolean,
    default: false
  },
  repeatNum: {
    type: Number,
    default: 1
  }
});
const messageEmits = {
  destroy: () => true
};

const _sfc_main = defineComponent({
  name: "ElMessage",
  components: {
    ElBadge,
    ElIcon,
    ...TypeComponents
  },
  props: messageProps,
  emits: messageEmits,
  setup(props) {
    const ns = useNamespace("message");
    const visible = ref(false);
    const badgeType = ref(props.type ? props.type === "error" ? "danger" : props.type : "info");
    let stopTimer = void 0;
    const typeClass = computed(() => {
      const type = props.type;
      return { [ns.bm("icon", type)]: type && TypeComponentsMap[type] };
    });
    const iconComponent = computed(() => {
      return props.icon || TypeComponentsMap[props.type] || "";
    });
    const customStyle = computed(() => ({
      top: `${props.offset}px`,
      zIndex: props.zIndex
    }));
    function startTimer() {
      if (props.duration > 0) {
        ({ stop: stopTimer } = useTimeoutFn(() => {
          if (visible.value)
            close();
        }, props.duration));
      }
    }
    function clearTimer() {
      stopTimer == null ? void 0 : stopTimer();
    }
    function close() {
      visible.value = false;
    }
    function keydown({ code }) {
      if (code === EVENT_CODE.esc) {
        if (visible.value) {
          close();
        }
      } else {
        startTimer();
      }
    }
    onMounted(() => {
      startTimer();
      visible.value = true;
    });
    watch(() => props.repeatNum, () => {
      clearTimer();
      startTimer();
    });
    useEventListener(document, "keydown", keydown);
    return {
      ns,
      typeClass,
      iconComponent,
      customStyle,
      visible,
      badgeType,
      close,
      clearTimer,
      startTimer
    };
  }
});
const _hoisted_1$4 = ["id"];
const _hoisted_2$4 = ["innerHTML"];
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_el_badge = resolveComponent("el-badge");
  const _component_el_icon = resolveComponent("el-icon");
  const _component_close = resolveComponent("close");
  return openBlock(), createBlock(Transition, {
    name: _ctx.ns.b("fade"),
    onBeforeLeave: _ctx.onClose,
    onAfterLeave: _cache[2] || (_cache[2] = ($event) => _ctx.$emit("destroy"))
  }, {
    default: withCtx(() => [
      withDirectives(createElementVNode("div", {
        id: _ctx.id,
        class: normalizeClass([
          _ctx.ns.b(),
          { [_ctx.ns.m(_ctx.type)]: _ctx.type && !_ctx.icon },
          _ctx.ns.is("center", _ctx.center),
          _ctx.ns.is("closable", _ctx.showClose),
          _ctx.customClass
        ]),
        style: normalizeStyle(_ctx.customStyle),
        role: "alert",
        onMouseenter: _cache[0] || (_cache[0] = (...args) => _ctx.clearTimer && _ctx.clearTimer(...args)),
        onMouseleave: _cache[1] || (_cache[1] = (...args) => _ctx.startTimer && _ctx.startTimer(...args))
      }, [
        _ctx.repeatNum > 1 ? (openBlock(), createBlock(_component_el_badge, {
          key: 0,
          value: _ctx.repeatNum,
          type: _ctx.badgeType,
          class: normalizeClass(_ctx.ns.e("badge"))
        }, null, 8, ["value", "type", "class"])) : createCommentVNode("v-if", true),
        _ctx.iconComponent ? (openBlock(), createBlock(_component_el_icon, {
          key: 1,
          class: normalizeClass([_ctx.ns.e("icon"), _ctx.typeClass])
        }, {
          default: withCtx(() => [
            (openBlock(), createBlock(resolveDynamicComponent(_ctx.iconComponent)))
          ]),
          _: 1
        }, 8, ["class"])) : createCommentVNode("v-if", true),
        renderSlot(_ctx.$slots, "default", {}, () => [
          !_ctx.dangerouslyUseHTMLString ? (openBlock(), createElementBlock("p", {
            key: 0,
            class: normalizeClass(_ctx.ns.e("content"))
          }, toDisplayString(_ctx.message), 3)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
            createCommentVNode(" Caution here, message could've been compromised, never use user's input as message "),
            createElementVNode("p", {
              class: normalizeClass(_ctx.ns.e("content")),
              innerHTML: _ctx.message
            }, null, 10, _hoisted_2$4)
          ], 2112))
        ]),
        _ctx.showClose ? (openBlock(), createBlock(_component_el_icon, {
          key: 2,
          class: normalizeClass(_ctx.ns.e("closeBtn")),
          onClick: withModifiers(_ctx.close, ["stop"])
        }, {
          default: withCtx(() => [
            createVNode(_component_close)
          ]),
          _: 1
        }, 8, ["class", "onClick"])) : createCommentVNode("v-if", true)
      ], 46, _hoisted_1$4), [
        [vShow, _ctx.visible]
      ])
    ]),
    _: 3
  }, 8, ["name", "onBeforeLeave"]);
}
var MessageConstructor = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue"]]);

const instances = [];
let seed = 1;
const message = function(options = {}, context) {
  if (!isClient)
    return { close: () => void 0 };
  if (isNumber(messageConfig.max) && instances.length >= messageConfig.max) {
    return { close: () => void 0 };
  }
  if (!isVNode(options) && isObject(options) && options.grouping && !isVNode(options.message) && instances.length) {
    const tempVm = instances.find((item) => {
      var _a, _b, _c;
      return `${(_b = (_a = item.vm.props) == null ? void 0 : _a.message) != null ? _b : ""}` === `${(_c = options.message) != null ? _c : ""}`;
    });
    if (tempVm) {
      tempVm.vm.component.props.repeatNum += 1;
      tempVm.vm.component.props.type = (options == null ? void 0 : options.type) || "info";
      return {
        close: () => vm.component.proxy.visible = false
      };
    }
  }
  if (isString(options) || isVNode(options)) {
    options = { message: options };
  }
  let verticalOffset = options.offset || 20;
  instances.forEach(({ vm: vm2 }) => {
    var _a;
    verticalOffset += (((_a = vm2.el) == null ? void 0 : _a.offsetHeight) || 0) + 16;
  });
  verticalOffset += 16;
  const { nextZIndex } = useZIndex();
  const id = `message_${seed++}`;
  const userOnClose = options.onClose;
  const props = {
    zIndex: nextZIndex(),
    ...options,
    offset: verticalOffset,
    id,
    onClose: () => {
      close(id, userOnClose);
    }
  };
  let appendTo = document.body;
  if (isElement(options.appendTo)) {
    appendTo = options.appendTo;
  } else if (isString(options.appendTo)) {
    appendTo = document.querySelector(options.appendTo);
  }
  if (!isElement(appendTo)) {
    debugWarn("ElMessage", "the appendTo option is not an HTMLElement. Falling back to document.body.");
    appendTo = document.body;
  }
  const container = document.createElement("div");
  container.className = `container_${id}`;
  const messageContent = props.message;
  const vm = createVNode(MessageConstructor, props, isFunction(messageContent) ? { default: messageContent } : isVNode(messageContent) ? { default: () => messageContent } : null);
  vm.appContext = context || message._context;
  vm.props.onDestroy = () => {
    render$f(null, container);
  };
  render$f(vm, container);
  instances.push({ vm });
  appendTo.appendChild(container.firstElementChild);
  return {
    close: () => vm.component.proxy.visible = false
  };
};
messageTypes.forEach((type) => {
  message[type] = (options = {}, appContext) => {
    if (isString(options) || isVNode(options)) {
      options = {
        message: options
      };
    }
    return message({
      ...options,
      type
    }, appContext);
  };
});
function close(id, userOnClose) {
  const idx = instances.findIndex(({ vm: vm2 }) => id === vm2.component.props.id);
  if (idx === -1)
    return;
  const { vm } = instances[idx];
  if (!vm)
    return;
  userOnClose == null ? void 0 : userOnClose(vm);
  const removedHeight = vm.el.offsetHeight;
  instances.splice(idx, 1);
  const len = instances.length;
  if (len < 1)
    return;
  for (let i = idx; i < len; i++) {
    const pos = Number.parseInt(instances[i].vm.el.style["top"], 10) - removedHeight - 16;
    instances[i].vm.component.props.offset = pos;
  }
}
function closeAll() {
  var _a;
  for (let i = instances.length - 1; i >= 0; i--) {
    const instance = instances[i].vm.component;
    (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.close();
  }
}
message.closeAll = closeAll;
message._context = null;

const ElMessage = withInstallFunction(message, "$message");

var script$4 = defineComponent({
    name: "magusImageUpload",
    props: {
        value: {},
        size: {
            type: Number,
            default: 2
        },
        height: {
            type: String,
            default: "178px"
        },
        width: {
            type: String,
            default: "178px"
        },
        uploadUrl: {
            type: String,
            default: ""
        },
        baseImageUrl: {
            type: String,
            default: ""
        },
        headers: {
            type: Object,
            default: () => {
                const headers = {};
                const tokens = localStorage.getItem("token");
                if (tokens) {
                    headers.Authorization = `Bearer ${tokens}`; // 让每个请求携带自定义token 请根据实际情况自行修改 // change by wen hao
                    headers["Content-Type"] = "application/json";
                }
                return headers;
            }
        }
    },
    components: {},
    data() {
        return {};
    },
    setup(props, context) {
        const { size, height, baseImageUrl } = props;
        const state = reactive({
            imageSize: size,
            imageUrl: "",
            dialogImageUrl: "",
            dialogVisible: false
        });
        const lineHeight = computed(() => height);
        const methods = {
            progressAvatarUpload() { },
            handleAvatarError(err) {
                const errData = JSON.parse(err.message);
                ElMessage.error(errData.error);
            },
            beforeUpload() {
                ElMessage.error("请先删除图片");
            },
            deleteIcon() {
                state.imageUrl = "";
                context.emit("deleteAvatar", true);
            },
            beforeAvatarUpload(file) {
                let isJPG = false;
                if (file.type === "image/jpeg" || file.type === "image/png") {
                    isJPG = true;
                }
                const isLt2M = file.size / 1024 / 1024 < state.imageSize;
                if (!isJPG) {
                    ElMessage.error("上传图片只能是 JPG或PNG 格式!");
                }
                if (!isLt2M) {
                    ElMessage.error(`上传图片大小不能超过 ${state.imageSize}MB!`);
                }
                return isJPG && isLt2M;
            },
            handleAvatarSuccess(res) {
                // this.$emit('showImgEvent', res.data, file.name)
                context.emit("input", res); // 触发 input 事件，并传入新值
                this.getImageUrl(res);
                // this.$emit("deleteAvatar", false);
            },
            handlePictureCardPreview(file) {
                state.dialogImageUrl = file.url;
                state.dialogVisible = true;
            },
            getImageUrl(id) {
                if (id) {
                    state.imageUrl = `${baseImageUrl}?id=${id}`;
                }
            }
        };
        return {
            ...toRefs(state),
            ...methods,
            lineHeight: lineHeight.value
        };
    }
});

const _hoisted_1$3 = ["src"];
const _hoisted_2$3 = /*#__PURE__*/createElementVNode("i", { class: "el-icon-error" }, null, -1 /* HOISTED */);
const _hoisted_3$2 = [
  _hoisted_2$3
];

function render$4(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_el_upload = resolveComponent("el-upload");

  return (openBlock(), createElementBlock("div", {
    style: normalizeStyle([{"position":"relative"}, { height: _ctx.height, width: _ctx.width }]),
    class: "uploader"
  }, [
    createVNode(_component_el_upload, mergeProps({
      class: "avatar-uploader",
      name: "file",
      action: _ctx.uploadUrl,
      headers: _ctx.headers,
      "show-file-list": false,
      "on-success": _ctx.handleAvatarSuccess,
      "on-progress": _ctx.progressAvatarUpload,
      "before-upload": _ctx.beforeAvatarUpload,
      "on-error": _ctx.handleAvatarError
    }, _ctx.$attrs), {
      default: withCtx(() => [
        (_ctx.imageUrl)
          ? (openBlock(), createElementBlock("img", {
              key: 0,
              id: "avatar",
              src: _ctx.imageUrl,
              class: "avatar",
              style: normalizeStyle({ height: _ctx.height, width: _ctx.width })
            }, null, 12 /* STYLE, PROPS */, _hoisted_1$3))
          : (openBlock(), createElementBlock("i", {
              key: 1,
              class: "el-icon-plus avatar-uploader-icon",
              style: normalizeStyle({ height: _ctx.height, width: _ctx.width, lineHeight: _ctx.lineHeight })
            }, null, 4 /* STYLE */))
      ]),
      _: 1 /* STABLE */
    }, 16 /* FULL_PROPS */, ["action", "headers", "on-success", "on-progress", "before-upload", "on-error"]),
    (_ctx.imageUrl)
      ? (openBlock(), createElementBlock("div", {
          key: 0,
          class: "prevent-uploader",
          onClick: _cache[1] || (_cache[1] = (...args) => (_ctx.beforeUpload && _ctx.beforeUpload(...args)))
        }, [
          createElementVNode("div", {
            style: normalizeStyle([{"position":"relative"}, { height: _ctx.height, width: _ctx.width }])
          }, [
            createElementVNode("div", {
              class: "delete-icon",
              onClick: _cache[0] || (_cache[0] = withModifiers((...args) => (_ctx.deleteIcon && _ctx.deleteIcon(...args)), ["stop"]))
            }, _hoisted_3$2)
          ], 4 /* STYLE */)
        ]))
      : createCommentVNode("v-if", true)
  ], 4 /* STYLE */))
}

script$4.render = render$4;
script$4.__file = "packages/components/magusImageUpload/src/index.vue";

/*
 * @Description:
 * @Version: 1.0
 * @Author: wenbin
 * @Date: 2021-11-12 09:54:04
 * @LastEditors: wenbin
 * @LastEditTime: 2021-11-12 11:21:10
 * @FilePath: /jwb-vue3-ui/packages/components/magusImageUpload/index.ts
 * Copyright (C) 2021 wenbin. All rights reserved.
 */
const magusImageUpload = withInstall$1(script$4);

var script$3 = defineComponent({
    name: "magusLayoutHeader",
    props: {
        // logo图片
        imgUrl: {
            type: String,
            default: ""
        },
        // 没有图片显示文字
        logoText: {
            type: String,
            default: ""
        },
        // logo详细描述
        logoDetail: {
            type: String,
            default: ""
        },
        // 用户头像
        userLogo: {
            type: String,
            default: ""
        },
        // 用户昵称
        username: {
            type: String,
            default: ""
        },
        // 头部菜单
        menuList: {
            type: Array,
            default: () => {
                return [];
            }
        },
        // 用户下拉菜单
        otherMenu: {
            type: Array,
            default: () => []
        },
        badgeValue: {
            type: Function,
            default: () => {
                return 0;
            }
        }
    },
    setup(props, context) {
        const { menuList: propMenuList } = props;
        const taskListRef = ref(null);
        const headerMenu = ref(null);
        const state = reactive({
            activeIndex: "1",
            timer: false,
            isShow: false,
            screenWidth: document.body.clientWidth,
            headerMenuWidth: document.body.clientWidth - 410,
            taskLength: 0,
            slotData: {},
            userInfo: {
                logo: ""
            },
            longMenuList: [],
            otherMenuList: []
        });
        const methods = {
            activeDropdown(datas) {
                if (datas.handle) {
                    const newDatas = JSON.parse(JSON.stringify(datas));
                    delete newDatas.handle;
                    datas.handle(newDatas);
                }
            },
            showMenu(val) {
                if (propMenuList && propMenuList.length * 140 > val) {
                    // console.log(val)
                    const showIndex = Math.floor(val / 140);
                    const menuList = propMenuList.filter((item, index) => index + 1 < showIndex);
                    const otherMenuList = propMenuList.filter((item, index) => index + 1 >= showIndex);
                    state.longMenuList = menuList;
                    state.otherMenuList = otherMenuList;
                }
                else {
                    state.longMenuList = [];
                    state.otherMenuList = [];
                }
            },
            // eslint-disable-next-line consistent-return
            resetSetItem(key, newVal) {
                if (key === "watchStorage") {
                    // 创建一个StorageEvent事件
                    const newStorageEvent = document.createEvent("StorageEvent");
                    const storage = {
                        setItem(k, val) {
                            sessionStorage.setItem(k, val);
                            // 初始化创建的事件
                            newStorageEvent.initStorageEvent("setItem", false, false, k, null, val, undefined, null);
                            // 派发对象
                            window.dispatchEvent(newStorageEvent);
                        }
                    };
                    return storage.setItem(key, newVal);
                }
            },
            activeMenu(datas) {
                state.activeIndex = datas.nodeId;
                localStorage.setItem("activeMenu", JSON.stringify(datas));
                this.resetSetItem("watchStorage", JSON.stringify(datas));
                // if (datas.children && datas.children.length) {
                //   let childData = datas.children[0];
                //   if (childData.extend && childData.extend.uri) {
                //     if (window.__POWERED_BY_QIANKUN__) {
                //       this.$router.push({
                //         path: childData.extend.appUri + childData.extend.uri,
                //         query: childData.extend.params
                //           ? JSON.parse(childData.extend.params)
                //           : {},
                //       });
                //     } else {
                //       this.$router.push({
                //         path: childData.extend.uri,
                //         query: childData.extend.params
                //           ? JSON.parse(childData.extend.params)
                //           : {},
                //       });
                //     }
                //   }
                // }
                context.emit("activeFun", datas);
            },
            getActiveMenu() {
                const activeMenu = localStorage.getItem("activeMenu");
                if (activeMenu) {
                    const activeMenuData = JSON.parse(activeMenu);
                    state.activeIndex = activeMenuData.nodeId;
                }
            },
            getTaskLength() {
                const mlinkDataLocal = localStorage.getItem("mlinkData");
                if (mlinkDataLocal) {
                    const taskList = JSON.parse(mlinkDataLocal);
                    state.taskLength = Object.keys(taskList).length;
                }
                else {
                    state.taskLength = 0;
                }
            },
            goTaskList() {
                // let url = window.location.origin + "/task";
                // window.open(
                //   url,
                //   "_blank",
                //   "scrollbars=yes,resizable=1,modal=false,alwaysRaised=yes"
                // );
                state.isShow = true;
                taskListRef.value.init();
            }
        };
        watch(() => state.headerMenuWidth, newVal => {
            if (!state.timer) {
                methods.showMenu(newVal);
                state.timer = true;
                setTimeout(() => {
                    // 在这里做有关浏览器变化时需要做的操作
                    state.timer = false;
                }, 400);
            }
        }, { immediate: true });
        onMounted(() => {
            nextTick(() => {
                setTimeout(() => {
                    // console.log(headerMenu);
                    state.headerMenuWidth = headerMenu.value.clientWidth;
                    methods.showMenu(state.headerMenuWidth);
                }, 100);
            });
            methods.getTaskLength();
            window.addEventListener("setTaskItem", () => {
                methods.getTaskLength();
            });
            window.addEventListener("setItem", () => {
                methods.getActiveMenu();
            });
            // eslint-disable-next-line func-names
            window.onresize = function () {
                // console.log("agag")
                return (() => {
                    window.screenWidth = document.body.clientWidth;
                    state.screenWidth = window.screenWidth;
                    state.headerMenuWidth = headerMenu.value.clientWidth;
                    methods.showMenu(state.headerMenuWidth);
                })();
            };
            methods.getActiveMenu();
            state.slotData = context.slots;
        });
        return {
            taskListRef,
            headerMenu,
            ...toRefs(state),
            ...methods
        };
    }
});

const _hoisted_1$2 = { class: "layout-header" };
const _hoisted_2$2 = { class: "layout-header-logo" };
const _hoisted_3$1 = ["src"];
const _hoisted_4 = {
  key: 1,
  class: "header-logo-text"
};
const _hoisted_5 = {
  key: 2,
  class: "header-logo-detail"
};
const _hoisted_6 = { class: "layout-header-menu" };
const _hoisted_7 = {
  key: 0,
  ref: "headerMenu",
  class: "header-menu"
};
const _hoisted_8 = ["onClick"];
const _hoisted_9 = /*#__PURE__*/createElementVNode("p", { class: "header-menu-item-line" }, null, -1 /* HOISTED */);
const _hoisted_10 = { class: "header-menu-item" };
const _hoisted_11 = /*#__PURE__*/createElementVNode("div", { class: "header-menu-dropdown-link" }, [
  /*#__PURE__*/createTextVNode(" 更多 "),
  /*#__PURE__*/createElementVNode("i", { class: "el-icon-caret-bottom" })
], -1 /* HOISTED */);
const _hoisted_12 = {
  key: 1,
  ref: "headerMenu",
  class: "header-menu"
};
const _hoisted_13 = ["onClick"];
const _hoisted_14 = /*#__PURE__*/createElementVNode("p", { class: "header-menu-item-line" }, null, -1 /* HOISTED */);
const _hoisted_15 = { class: "layout-header-other" };
const _hoisted_16 = {
  key: 0,
  class: "layout-header-slot"
};
const _hoisted_17 = { class: "el-dropdown-link" };
const _hoisted_18 = ["src"];
const _hoisted_19 = {
  key: 2,
  class: "el-dropdown-link"
};
const _hoisted_20 = ["src"];

function render$3(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_magus_icon = resolveComponent("magus-icon");
  const _component_el_badge = resolveComponent("el-badge");
  const _component_el_dropdown_item = resolveComponent("el-dropdown-item");
  const _component_el_dropdown_menu = resolveComponent("el-dropdown-menu");
  const _component_el_dropdown = resolveComponent("el-dropdown");
  const _component_el_button = resolveComponent("el-button");
  const _component_magus_task_list = resolveComponent("magus-task-list");

  return (openBlock(), createElementBlock("header", _hoisted_1$2, [
    createElementVNode("div", _hoisted_2$2, [
      (_ctx.imgUrl)
        ? (openBlock(), createElementBlock("img", {
            key: 0,
            class: "header-logo-image",
            src: _ctx.imgUrl,
            alt: "logo"
          }, null, 8 /* PROPS */, _hoisted_3$1))
        : (openBlock(), createElementBlock("div", _hoisted_4, toDisplayString(_ctx.logoText), 1 /* TEXT */)),
      (_ctx.logoDetail)
        ? (openBlock(), createElementBlock("div", _hoisted_5, toDisplayString(_ctx.logoDetail), 1 /* TEXT */))
        : createCommentVNode("v-if", true)
    ]),
    createElementVNode("div", _hoisted_6, [
      (_ctx.longMenuList && _ctx.longMenuList.length > 0)
        ? (openBlock(), createElementBlock("ul", _hoisted_7, [
            (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.longMenuList, (item, index) => {
              return (openBlock(), createElementBlock("li", {
                class: normalizeClass(["header-menu-item", item.nodeId === _ctx.activeIndex ? 'active' : '']),
                onClick: $event => (_ctx.activeMenu(item)),
                key: index
              }, [
                (item.extend && item.extend.icon)
                  ? (openBlock(), createBlock(_component_magus_icon, {
                      key: 0,
                      icon: item.extend.icon,
                      size: 14
                    }, null, 8 /* PROPS */, ["icon"]))
                  : createCommentVNode("v-if", true),
                createVNode(_component_el_badge, {
                  hidden: _ctx.badgeValue(item) <= 0,
                  value: _ctx.badgeValue(item),
                  class: "item"
                }, {
                  default: withCtx(() => [
                    createElementVNode("span", null, toDisplayString(item.text), 1 /* TEXT */)
                  ]),
                  _: 2 /* DYNAMIC */
                }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["hidden", "value"]),
                createCommentVNode(" <span>{{ item.text }}</span> "),
                _hoisted_9
              ], 10 /* CLASS, PROPS */, _hoisted_8))
            }), 128 /* KEYED_FRAGMENT */)),
            createElementVNode("li", _hoisted_10, [
              createVNode(_component_el_dropdown, { trigger: "hover" }, {
                dropdown: withCtx(() => [
                  createVNode(_component_el_dropdown_menu, { class: "layout-header-dropdown" }, {
                    default: withCtx(() => [
                      (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.otherMenuList, (item, index) => {
                        return (openBlock(), createBlock(_component_el_dropdown_item, {
                          onClick: $event => (_ctx.activeMenu(item)),
                          class: normalizeClass(item.nodeId === _ctx.activeIndex ? 'active' : ''),
                          key: index
                        }, {
                          default: withCtx(() => [
                            createVNode(_component_el_badge, {
                              hidden: _ctx.badgeValue(item) <= 0,
                              value: _ctx.badgeValue(item),
                              class: "item"
                            }, {
                              default: withCtx(() => [
                                createElementVNode("span", null, [
                                  (item.extend && item.extend.icon)
                                    ? (openBlock(), createBlock(_component_magus_icon, {
                                        key: 0,
                                        icon: item.extend.icon,
                                        size: 14
                                      }, null, 8 /* PROPS */, ["icon"]))
                                    : createCommentVNode("v-if", true),
                                  createTextVNode(" " + toDisplayString(item.text), 1 /* TEXT */)
                                ])
                              ]),
                              _: 2 /* DYNAMIC */
                            }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["hidden", "value"])
                          ]),
                          _: 2 /* DYNAMIC */
                        }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["onClick", "class"]))
                      }), 128 /* KEYED_FRAGMENT */))
                    ]),
                    _: 1 /* STABLE */
                  })
                ]),
                default: withCtx(() => [
                  _hoisted_11
                ]),
                _: 1 /* STABLE */
              })
            ])
          ], 512 /* NEED_PATCH */))
        : (openBlock(), createElementBlock("ul", _hoisted_12, [
            (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.menuList, (item, index) => {
              return (openBlock(), createElementBlock("li", {
                class: normalizeClass(["header-menu-item", item.nodeId === _ctx.activeIndex ? 'active' : '']),
                onClick: $event => (_ctx.activeMenu(item)),
                key: index
              }, [
                (item.extend && item.extend.icon)
                  ? (openBlock(), createBlock(_component_magus_icon, {
                      key: 0,
                      icon: item.extend.icon,
                      size: 14
                    }, null, 8 /* PROPS */, ["icon"]))
                  : createCommentVNode("v-if", true),
                createVNode(_component_el_badge, {
                  hidden: _ctx.badgeValue(item) <= 0,
                  value: _ctx.badgeValue(item),
                  class: "item"
                }, {
                  default: withCtx(() => [
                    createElementVNode("span", null, toDisplayString(item.text), 1 /* TEXT */)
                  ]),
                  _: 2 /* DYNAMIC */
                }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["hidden", "value"]),
                _hoisted_14
              ], 10 /* CLASS, PROPS */, _hoisted_13))
            }), 128 /* KEYED_FRAGMENT */))
          ], 512 /* NEED_PATCH */))
    ]),
    createElementVNode("div", _hoisted_15, [
      (_ctx.slotData.headerOther)
        ? (openBlock(), createElementBlock("div", _hoisted_16, [
            renderSlot(_ctx.$slots, "headerOther")
          ]))
        : createCommentVNode("v-if", true),
      createVNode(_component_el_badge, {
        class: "layout-header-taskbadge",
        hidden: _ctx.taskLength <= 0,
        value: _ctx.taskLength
      }, {
        default: withCtx(() => [
          withDirectives(createVNode(_component_el_button, {
            onClick: _ctx.goTaskList,
            type: "text",
            class: "layout-header-task magusdip-iconfont",
            icon: "magusdiprenwuweixiafa",
            title: _ctx.$t('global.taskList')
          }, null, 8 /* PROPS */, ["onClick", "title"]), [
            [vShow, _ctx.taskLength > 0]
          ])
        ]),
        _: 1 /* STABLE */
      }, 8 /* PROPS */, ["hidden", "value"]),
      (_ctx.otherMenu && _ctx.otherMenu.length)
        ? (openBlock(), createBlock(_component_el_dropdown, {
            key: 1,
            trigger: "click"
          }, {
            dropdown: withCtx(() => [
              createVNode(_component_el_dropdown_menu, { class: "layout-header-dropdown" }, {
                default: withCtx(() => [
                  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.otherMenu, (item, index) => {
                    return (openBlock(), createBlock(_component_el_dropdown_item, {
                      onClick: $event => (_ctx.activeDropdown(item)),
                      key: index
                    }, {
                      default: withCtx(() => [
                        createVNode(_component_magus_icon, {
                          icon: item.icon,
                          color: item.iconColor,
                          size: item.iconSize
                        }, null, 8 /* PROPS */, ["icon", "color", "size"]),
                        createTextVNode(" " + toDisplayString(item.name), 1 /* TEXT */)
                      ]),
                      _: 2 /* DYNAMIC */
                    }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["onClick"]))
                  }), 128 /* KEYED_FRAGMENT */))
                ]),
                _: 1 /* STABLE */
              })
            ]),
            default: withCtx(() => [
              createElementVNode("div", _hoisted_17, [
                withDirectives(createElementVNode("img", {
                  src: _ctx.userLogo,
                  alt: "头像"
                }, null, 8 /* PROPS */, _hoisted_18), [
                  [vShow, _ctx.userLogo]
                ]),
                withDirectives(createElementVNode("span", null, toDisplayString(_ctx.username), 513 /* TEXT, NEED_PATCH */), [
                  [vShow, _ctx.username]
                ])
              ])
            ]),
            _: 1 /* STABLE */
          }))
        : (openBlock(), createElementBlock("div", _hoisted_19, [
            withDirectives(createElementVNode("img", {
              src: _ctx.userLogo,
              alt: "头像"
            }, null, 8 /* PROPS */, _hoisted_20), [
              [vShow, _ctx.userLogo]
            ]),
            withDirectives(createElementVNode("span", null, toDisplayString(_ctx.username), 513 /* TEXT, NEED_PATCH */), [
              [vShow, _ctx.username]
            ])
          ]))
    ]),
    createVNode(_component_magus_task_list, {
      ref: "taskList",
      isShow: _ctx.isShow,
      onCancel: _cache[0] || (_cache[0] = $event => (_ctx.isShow = false))
    }, null, 8 /* PROPS */, ["isShow"])
  ]))
}

script$3.render = render$3;
script$3.__file = "packages/components/magusLayoutHeader/src/index.vue";

/*
 * @Description:
 * @Version: 1.0
 * @Author: wenbin
 * @Date: 2021-11-12 13:34:09
 * @LastEditors: wenbin
 * @LastEditTime: 2021-11-12 15:14:02
 * @FilePath: /jwb-vue3-ui/packages/components/magusLayoutHeader/index.ts
 * Copyright (C) 2021 wenbin. All rights reserved.
 */
const magusLayoutHeader = withInstall$1(script$3);

var script$2 = defineComponent({
    name: "magusSubmenu",
    components: {},
    props: {
        menu: {
            type: Array,
            default: () => {
                return [];
            }
        },
        index: {
            type: String,
            default: ""
        },
        title: {
            type: String,
            default: ""
        },
        icon: {
            type: String,
            default: ""
        }
    },
    data() {
        return {};
    },
    setup(props, context) {
        const router = useRouter();
        const state = reactive({
            activeIndex: ""
        });
        const methods = {
            /**
             * @description: 校验url
             * @param {*} url
             * @return {*}
             */
            checkUrl(url) {
                // url= 协议://(ftp的登录信息)[IP|域名](:端口号)(/或?请求参数)
                const strRegex = "^((https|http|ftp)://)?" + // (https或http或ftp):// 可有可无
                    "(([\\w_!~*'()\\.&=+$%-]+: )?[\\w_!~*'()\\.&=+$%-]+@)?" + // ftp的user@  可有可无
                    "(([0-9]{1,3}\\.){3}[0-9]{1,3}" + // IP形式的URL- 3位数字.3位数字.3位数字.3位数字
                    "|" + // 允许IP和DOMAIN（域名）
                    "(localhost)|" + // 匹配localhost
                    "([\\w_!~*'()-]+\\.)*" + // 域名- 至少一个[英文或数字_!~*\'()-]加上.
                    "\\w+\\." + // 一级域名 -英文或数字  加上.
                    "[a-zA-Z]{1,6})" + // 顶级域名- 1-6位英文
                    "(:[0-9]{1,5})?" + // 端口- :80 ,1-5位数字
                    "((/?)|" + // url无参数结尾 - 斜杆或这没有
                    "(/[\\w_!~*'()\\.;?:@&=+$,%#-]+)+/?)$"; // 请求参数结尾- 英文或数字和[]内的各种字符
                // var strRegex1 = '^(?=^.{3,255}$)((http|https|ftp)?:\/\/)?(www\.)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+(:\d+)*(\/)?(?:\/(.+)\/?$)?(\/\w+\.\w+)*([\?&]\w+=\w*|[\u4e00-\u9fa5]+)*$';
                const re = new RegExp(strRegex, "i"); // i不区分大小写
                // console.log(re);
                // 将url做uri转码后再匹配，解除请求参数中的中文和空字符影响
                if (re.test(encodeURI(url))) {
                    return true;
                }
                return false;
            },
            /**
             * @description: obj转url参数
             * @param {*} params
             * @return {*}
             */
            paramsToUrlQuery(params) {
                const types = Object.prototype.toString.call(params).slice(8, -1);
                if (types === "Object") {
                    const tempArr = [];
                    // eslint-disable-next-line guard-for-in
                    for (const i in params) {
                        const key = encodeURIComponent(i);
                        const value = encodeURIComponent(params[i]);
                        tempArr.push(`${key}=${value}`);
                    }
                    const urlParamsStr = tempArr.join("&");
                    return urlParamsStr;
                }
                return "";
            },
            activeSubMenu(datas) {
                state.activeIndex = `${datas.nodeId}`;
                if (datas.extend.window) {
                    let urlParams = "";
                    if (this.checkUrl(datas.extend.uri)) {
                        // window.open(datas.extend.uri, "_blank");
                        if (datas.extend.params && datas.extend.params !== "{}") {
                            const params = JSON.parse(datas.extend.params);
                            urlParams = this.paramsToUrlQuery(params);
                            if (datas.extend.uri.indexOf("?") !== -1) {
                                window.open(`${datas.extend.uri}&${urlParams}`, "_blank");
                            }
                            else {
                                window.open(`${datas.extend.uri}?${urlParams}`, "_blank");
                            }
                        }
                        else {
                            window.open(`${datas.extend.uri}`, "_blank");
                        }
                    }
                    else {
                        const urls = `${window.origin}${datas.extend.uri}`;
                        if (datas.extend.params && datas.extend.params !== "{}") {
                            const params = JSON.parse(datas.extend.params);
                            urlParams = this.paramsToUrlQuery(params);
                            if (urls.indexOf("?") !== -1) {
                                window.open(`${urls}&${urlParams}`, "_blank");
                            }
                            else {
                                window.open(`${urls}?${urlParams}`, "_blank");
                            }
                        }
                        else {
                            window.open(urls, "_blank");
                        }
                    }
                }
                else if (this.checkUrl(datas.extend.uri)) {
                    let urlParams = "";
                    if (datas.extend.params && datas.extend.params !== "{}") {
                        const params = JSON.parse(datas.extend.params);
                        urlParams = this.paramsToUrlQuery(params);
                        if (datas.extend.uri.indexOf("?") !== -1) {
                            window.open(`${datas.extend.uri}&${urlParams}`, "_self");
                        }
                        else {
                            window.open(`${datas.extend.uri}?${urlParams}`, "_self");
                        }
                    }
                    else {
                        window.open(`${datas.extend.uri}`, "_self");
                    }
                }
                else {
                    router.push({
                        path: datas.extend.uri,
                        query: datas.extend.params ? JSON.parse(datas.extend.params) : {}
                    });
                }
                localStorage.setItem("activeSubMenu", JSON.stringify(datas));
            }
        };
        return {
            ...toRefs(state),
            ...methods
        };
    }
});

const _hoisted_1$1 = { class: "el-submenu-mine" };
const _hoisted_2$1 = { style: {"display":"inline-block","margin-left":"10px"} };
const _hoisted_3 = { style: {"display":"inline-block","margin-left":"10px"} };

function render$2(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_magus_icon = resolveComponent("magus-icon");
  const _component_magus_submenu = resolveComponent("magus-submenu");
  const _component_el_menu_item = resolveComponent("el-menu-item");
  const _component_el_submenu = resolveComponent("el-submenu");

  return (openBlock(), createElementBlock("div", _hoisted_1$1, [
    createVNode(_component_el_submenu, { index: _ctx.index }, {
      title: withCtx(() => [
        (_ctx.icon)
          ? (openBlock(), createBlock(_component_magus_icon, {
              key: 0,
              icon: _ctx.icon,
              size: 14
            }, null, 8 /* PROPS */, ["icon"]))
          : createCommentVNode("v-if", true),
        createElementVNode("span", _hoisted_2$1, toDisplayString(_ctx.title), 1 /* TEXT */)
      ]),
      default: withCtx(() => [
        (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.menu, (menuItem) => {
          return (openBlock(), createElementBlock(Fragment, null, [
            (menuItem.children && menuItem.children.length)
              ? (openBlock(), createBlock(_component_magus_submenu, {
                  key: menuItem.nodeId,
                  menu: menuItem.children,
                  index: `${menuItem.nodeId}`,
                  title: menuItem.text,
                  icon: menuItem.icon
                }, null, 8 /* PROPS */, ["menu", "index", "title", "icon"]))
              : (openBlock(), createBlock(_component_el_menu_item, {
                  key: menuItem.nodeId,
                  index: `${menuItem.nodeId}`,
                  onClick: $event => (_ctx.activeSubMenu(menuItem))
                }, {
                  title: withCtx(() => [
                    createElementVNode("span", _hoisted_3, toDisplayString(menuItem.text), 1 /* TEXT */)
                  ]),
                  default: withCtx(() => [
                    (menuItem.icon)
                      ? (openBlock(), createBlock(_component_magus_icon, {
                          key: 0,
                          icon: menuItem.icon,
                          size: 14
                        }, null, 8 /* PROPS */, ["icon"]))
                      : createCommentVNode("v-if", true)
                  ]),
                  _: 2 /* DYNAMIC */
                }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["index", "onClick"]))
          ], 64 /* STABLE_FRAGMENT */))
        }), 256 /* UNKEYED_FRAGMENT */))
      ]),
      _: 1 /* STABLE */
    }, 8 /* PROPS */, ["index"])
  ]))
}

script$2.render = render$2;
script$2.__file = "packages/components/magusSubmenu/src/index.vue";

/*
 * @Description:
 * @Version: 1.0
 * @Author: wenbin
 * @Date: 2021-11-15 10:03:46
 * @LastEditors: wenbin
 * @LastEditTime: 2021-11-15 10:17:18
 * @FilePath: /jwb-vue3-ui/packages/components/magusSubmenu/index.ts
 * Copyright (C) 2021 wenbin. All rights reserved.
 */
const magusSubmenu = withInstall$1(script$2);

var script$1 = defineComponent({
    name: "magusLayoutNavbar",
    props: {
        badgeValue: {
            type: Function,
            default: () => {
                return 0;
            }
        }
    },
    components: {},
    data() {
        return {};
    },
    setup(props, context) {
        const router = useRouter();
        const state = reactive({
            isCollapse: false,
            menuList: [],
            activeIndex: "11"
        });
        const methods = {
            getMenuList(datas) {
                if (datas) {
                    if (datas.children && datas.children.length) {
                        state.menuList = datas.children;
                    }
                    else {
                        state.menuList = [];
                    }
                }
                else if (localStorage.getItem("activeMenu")) {
                    const activeMenuCatch = localStorage.getItem("activeMenu");
                    const activeMenuData = JSON.parse(activeMenuCatch);
                    if (activeMenuData && activeMenuData.children && activeMenuData.children.length) {
                        state.menuList = activeMenuData.children;
                    }
                    else {
                        state.menuList = [];
                    }
                }
            },
            /**
             * @description: 校验url
             * @param {*} url
             * @return {*}
             */
            checkUrl(url) {
                // url= 协议://(ftp的登录信息)[IP|域名](:端口号)(/或?请求参数)
                const strRegex = "^((https|http|ftp)://)?" + // (https或http或ftp):// 可有可无
                    "(([\\w_!~*'()\\.&=+$%-]+: )?[\\w_!~*'()\\.&=+$%-]+@)?" + // ftp的user@  可有可无
                    "(([0-9]{1,3}\\.){3}[0-9]{1,3}" + // IP形式的URL- 3位数字.3位数字.3位数字.3位数字
                    "|" + // 允许IP和DOMAIN（域名）
                    "(localhost)|" + // 匹配localhost
                    "([\\w_!~*'()-]+\\.)*" + // 域名- 至少一个[英文或数字_!~*\'()-]加上.
                    "\\w+\\." + // 一级域名 -英文或数字  加上.
                    "[a-zA-Z]{1,6})" + // 顶级域名- 1-6位英文
                    "(:[0-9]{1,5})?" + // 端口- :80 ,1-5位数字
                    "((/?)|" + // url无参数结尾 - 斜杆或这没有
                    "(/[\\w_!~*'()\\.;?:@&=+$,%#-]+)+/?)$"; // 请求参数结尾- 英文或数字和[]内的各种字符
                // var strRegex1 = '^(?=^.{3,255}$)((http|https|ftp)?:\/\/)?(www\.)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+(:\d+)*(\/)?(?:\/(.+)\/?$)?(\/\w+\.\w+)*([\?&]\w+=\w*|[\u4e00-\u9fa5]+)*$';
                const re = new RegExp(strRegex, "i"); // i不区分大小写
                // console.log(re);
                // 将url做uri转码后再匹配，解除请求参数中的中文和空字符影响
                if (re.test(encodeURI(url))) {
                    return true;
                }
                return false;
            },
            /**
             * @description: obj转url参数
             * @param {*} params
             * @return {*}
             */
            paramsToUrlQuery(params) {
                const types = Object.prototype.toString.call(params).slice(8, -1);
                if (types === "Object") {
                    const tempArr = [];
                    // eslint-disable-next-line guard-for-in
                    for (const i in params) {
                        const key = encodeURIComponent(i);
                        const value = encodeURIComponent(params[i]);
                        tempArr.push(`${key}=${value}`);
                    }
                    const urlParamsStr = tempArr.join("&");
                    return urlParamsStr;
                }
                return "";
            },
            /**
             * @description: 菜单跳转
             * @param {*} datas
             * @return {*}
             */
            activeSubMenu(datas) {
                state.activeIndex = `${datas.nodeId}`;
                if (datas.extend.window) {
                    let urlParams = "";
                    if (this.checkUrl(datas.extend.uri)) {
                        // window.open(datas.extend.uri, "_blank");
                        if (datas.extend.params && datas.extend.params !== "{}") {
                            const params = JSON.parse(datas.extend.params);
                            urlParams = this.paramsToUrlQuery(params);
                            if (datas.extend.uri.indexOf("?") !== -1) {
                                window.open(`${datas.extend.uri}&${urlParams}`, "_blank");
                            }
                            else {
                                window.open(`${datas.extend.uri}?${urlParams}`, "_blank");
                            }
                        }
                        else {
                            window.open(`${datas.extend.uri}`, "_blank");
                        }
                    }
                    else {
                        const urls = `${window.origin}${datas.extend.uri}`;
                        if (datas.extend.params && datas.extend.params !== "{}") {
                            const params = JSON.parse(datas.extend.params);
                            urlParams = this.paramsToUrlQuery(params);
                            if (urls.indexOf("?") !== -1) {
                                window.open(`${urls}&${urlParams}`, "_blank");
                            }
                            else {
                                window.open(`${urls}?${urlParams}`, "_blank");
                            }
                        }
                        else {
                            window.open(urls, "_blank");
                        }
                    }
                }
                else if (this.checkUrl(datas.extend.uri)) {
                    let urlParams = "";
                    if (datas.extend.params && datas.extend.params !== "{}") {
                        const params = JSON.parse(datas.extend.params);
                        urlParams = this.paramsToUrlQuery(params);
                        if (datas.extend.uri.indexOf("?") !== -1) {
                            window.open(`${datas.extend.uri}&${urlParams}`, "_self");
                        }
                        else {
                            window.open(`${datas.extend.uri}?${urlParams}`, "_self");
                        }
                    }
                    else {
                        window.open(`${datas.extend.uri}`, "_self");
                    }
                }
                else {
                    router.push({
                        path: datas.extend.uri,
                        query: datas.extend.params ? JSON.parse(datas.extend.params) : {}
                    });
                }
                localStorage.setItem("activeSubMenu", JSON.stringify(datas));
            },
            getActiveMenu() {
                const activeSubMenu = localStorage.getItem("activeSubMenu");
                if (activeSubMenu) {
                    const activeMenuData = JSON.parse(activeSubMenu);
                    state.activeIndex = `${activeMenuData.nodeId}`;
                }
            }
        };
        onMounted(() => {
            window.addEventListener("setItem", () => {
                methods.getMenuList();
                // _this.activeSubMenu(_this.menuList[0]);
                methods.getActiveMenu();
            });
            methods.getMenuList();
            methods.getActiveMenu();
        });
        return {
            ...toRefs(state),
            ...methods
        };
    }
});

function render$1(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_magus_submenu = resolveComponent("magus-submenu");
  const _component_magus_icon = resolveComponent("magus-icon");
  const _component_el_badge = resolveComponent("el-badge");
  const _component_el_menu_item = resolveComponent("el-menu-item");
  const _component_el_menu = resolveComponent("el-menu");

  return (_ctx.menuList && _ctx.menuList.length)
    ? (openBlock(), createElementBlock("div", {
        key: 0,
        class: "magus-nav",
        style: normalizeStyle({ width: _ctx.isCollapse ? '70px' : '240px' })
      }, [
        createVNode(_component_el_menu, {
          "default-active": _ctx.activeIndex,
          class: "el-menu-vertical-demo",
          collapse: _ctx.isCollapse,
          "collapse-transition": false
        }, {
          default: withCtx(() => [
            (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.menuList, (menuItem) => {
              return (openBlock(), createElementBlock(Fragment, null, [
                (menuItem.children && menuItem.children.length)
                  ? (openBlock(), createBlock(_component_magus_submenu, {
                      key: menuItem.nodeId,
                      menu: menuItem.children,
                      index: `${menuItem.nodeId}`,
                      title: menuItem.text,
                      icon: menuItem.icon
                    }, null, 8 /* PROPS */, ["menu", "index", "title", "icon"]))
                  : (openBlock(), createBlock(_component_el_menu_item, {
                      key: menuItem.nodeId,
                      index: `${menuItem.nodeId}`,
                      onClick: $event => (_ctx.activeSubMenu(menuItem))
                    }, {
                      default: withCtx(() => [
                        createVNode(_component_el_badge, {
                          hidden: _ctx.badgeValue(menuItem) <= 0,
                          value: _ctx.badgeValue(menuItem),
                          class: "item"
                        }, {
                          title: withCtx(() => [
                            createElementVNode("span", {
                              style: normalizeStyle([{ 'margin-left': _ctx.isCollapse ? '' : '10px' }, {"display":"inline-block","margin-left":"10px"}])
                            }, toDisplayString(menuItem.text), 5 /* TEXT, STYLE */)
                          ]),
                          default: withCtx(() => [
                            (menuItem.extend && menuItem.extend.icon)
                              ? (openBlock(), createBlock(_component_magus_icon, {
                                  key: 0,
                                  icon: menuItem.extend.icon,
                                  size: 14
                                }, null, 8 /* PROPS */, ["icon"]))
                              : createCommentVNode("v-if", true)
                          ]),
                          _: 2 /* DYNAMIC */
                        }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["hidden", "value"])
                      ]),
                      _: 2 /* DYNAMIC */
                    }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["index", "onClick"]))
              ], 64 /* STABLE_FRAGMENT */))
            }), 256 /* UNKEYED_FRAGMENT */))
          ]),
          _: 1 /* STABLE */
        }, 8 /* PROPS */, ["default-active", "collapse"]),
        createElementVNode("div", {
          onClick: _cache[0] || (_cache[0] = 
        () => {
          _ctx.isCollapse = !_ctx.isCollapse;
        }
      ),
          class: "magus-nav-collapse"
        }, [
          createVNode(_component_magus_icon, {
            class: normalizeClass(_ctx.isCollapse ? 'collapse-expand' : ''),
            icon: "magusdipzhankai1",
            size: 14
          }, null, 8 /* PROPS */, ["class"]),
          createElementVNode("span", null, toDisplayString(_ctx.isCollapse ? _ctx.$t("global.action.unfold") : _ctx.$t("global.action.packup")), 1 /* TEXT */)
        ])
      ], 4 /* STYLE */))
    : createCommentVNode("v-if", true)
}

script$1.render = render$1;
script$1.__file = "packages/components/magusLayoutNavbar/src/index.vue";

/*
 * @Description:
 * @Version: 1.0
 * @Author: wenbin
 * @Date: 2021-11-12 15:15:51
 * @LastEditors: wenbin
 * @LastEditTime: 2021-11-15 10:18:14
 * @FilePath: /jwb-vue3-ui/packages/components/magusLayoutNavbar/index.ts
 * Copyright (C) 2021 wenbin. All rights reserved.
 */
const magusLayoutNavbar = withInstall$1(script$1);

var script = defineComponent({
    name: "magusLayout",
    props: {
        // 头部信息维护
        headerInfo: {
            type: Object
        },
        // 底部信息维护
        footerInfo: {
            type: Object
        },
        badgeValue: {
            type: Function
        },
        isShowFooter: {
            type: Boolean,
            default: true
        }
    }
});

const _hoisted_1 = { class: "magus-layout" };
const _hoisted_2 = { class: "layout-main" };

function render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_magus_layout_header = resolveComponent("magus-layout-header");
  const _component_magus_layout_navbar = resolveComponent("magus-layout-navbar");
  const _component_magus_breadcrumb = resolveComponent("magus-breadcrumb");
  const _component_magus_footer = resolveComponent("magus-footer");

  return (openBlock(), createElementBlock("div", _hoisted_1, [
    createVNode(_component_magus_layout_header, mergeProps(_ctx.headerInfo, { badgeValue: _ctx.badgeValue }), createSlots({ _: 2 /* DYNAMIC */ }, [
      (_ctx.$slots.headerOther)
        ? {
            name: "headerOther",
            fn: withCtx(() => [
              renderSlot(_ctx.$slots, "headerOther")
            ])
          }
        : undefined
    ]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, ["badgeValue"]),
    createElementVNode("div", _hoisted_2, [
      createVNode(_component_magus_layout_navbar, mergeProps({
        ref: "navbar",
        class: "layout-main-left",
        badgeValue: _ctx.badgeValue
      }, _ctx.$attrs), null, 16 /* FULL_PROPS */, ["badgeValue"]),
      createElementVNode("div", {
        class: "layout-main-content",
        style: normalizeStyle(
          _ctx.$route.meta.noPadding
            ? {
                'padding-left': 0,
                'padding-right': 0,
                'padding-bottom': _ctx.isShowFooter ? '40px' : '0',
                'padding-top': _ctx.$route.meta.showBreadcrumb ? '40px' : '0'
              }
            : {
                'padding-top': _ctx.$route.meta.showBreadcrumb ? '40px' : '15px',
                'padding-bottom': _ctx.isShowFooter ? '40px' : '15px'
              }
        )
      }, [
        (_ctx.$route.meta.showBreadcrumb)
          ? (openBlock(), createBlock(_component_magus_breadcrumb, {
              key: 0,
              class: "layout-main-breadcrumb"
            }))
          : createCommentVNode("v-if", true),
        renderSlot(_ctx.$slots, "default"),
        (_ctx.isShowFooter)
          ? (openBlock(), createBlock(_component_magus_footer, normalizeProps(mergeProps({ key: 1 }, _ctx.footerInfo)), null, 16 /* FULL_PROPS */))
          : createCommentVNode("v-if", true)
      ], 4 /* STYLE */)
    ])
  ]))
}

script.render = render;
script.__file = "packages/components/magusLayout/src/index.vue";

/*
 * @Description:
 * @Version: 1.0
 * @Author: wenbin
 * @Date: 2021-11-12 13:32:51
 * @LastEditors: wenbin
 * @LastEditTime: 2021-11-15 10:27:39
 * @FilePath: /jwb-vue3-ui/packages/components/magusLayout/index.ts
 * Copyright (C) 2021 wenbin. All rights reserved.
 */
const magusLayout = withInstall$1(script);

export { magusAddTemplate, magusBreadcrumb, magusChooseIcon, magusDialog, magusDictLabel, magusDictSelect, magusError, magusFooter, magusIcon, magusIconSvg, magusImageUpload, magusLayout, magusLayoutHeader, magusLayoutNavbar, magusSubmenu };
